Upload
khangminh22
View
0
Download
0
Embed Size (px)
Citation preview
Calhoun: The NPS Institutional Archive
Theses and Dissertations Thesis Collection
1998-03-01
Re-engineering of a mission critical satellite
communications component TD-1271B/U
Hirschfelder, Joe T.
Monterey, California. Naval Postgraduate School
http://hdl.handle.net/10945/8896
REPORT DOCUMENTATION PAGE Form Approved OMB No. 0704-01 i
Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instruction, searching existing data
sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other
aspect of this collection of information, including suggestions for reducing this burden, to Washington Headquarters Services. Directorate for Information Operations and
Reports. 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302. and to the Office of Management and Budget. Paperwork Reduction Project (0704-0188)
Washington DC 20503.
1 . AGENCY USE ONLY (Leave blank) 2. REPORT DATEMarch 1998
REPORT TYPE AND DATES COVEREDMaster's Thesis
title and subtitle RE-ENGINEERING OF A MISSIONCRITICAL SATELLITE COMMUNICATIONS COMPONENTTD1271B/U
6. AUTHOR(S) Joe T. Hirschfelder and Laurence M. Nixon
FUNDING NUMBERS
7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES)
Naval Postgraduate School
Monterey CA 93943-5000
PERFORMINGORGANIZATIONREPORT NUMBER
9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSORING/MONITORINGAGENCY REPORT NUMBER
11. SUPPLEMENTARY NOTES The views expressed in this thesis are those of the author and do not reflect the
official policy or position of the Department of Defense or the U.S. Government.
12a. DISTRIBUTION/AVAILABILITY STATEMENTApproved for public release; distribution is unlimited.
12b. DISTRIBUTION CODE
1 3 . ABSTRACT (maximum 200 words)
Legacy software in general, and in the DoD environment in particular, presents an ever-
growing maintenance challenge to program managers. The software is cumbersome, written in arcane
languages and hosted on aging technology hardware. One of the options that is available to the
program manager to alleviate this problem is to re-engineer the existing software product and update it
to a newer language software hosted on modern equipment.
We review existing research, select a re-engineering methodology, develop an implementation
strategy and then perform a 'case study' examination of this methodology and strategy. For the case
study, we take a legacy system, the Navy satellite communications multiplexer, the TD1271B/U
Multiplexer, examine its existing documentation, develop a code analysis tool, perform the re-
engineering on one of its sub-systems, and analyze the results. We provide observations,
recommendations and conclusions on changes, enhancements and pitfalls to the methodology that will
be of assistance in future re-engineering efforts of legacy systems.
14. SUBJECT TERMS Reverse Engineering, Re-Engineering, Legacy Systems.
TD1271B/U.
15. NUMBER OFPAGES 176
16. PRICE CODE
17. SECURITY CLASSIFICA-
TION OF REPORT
Unclassified
SECURITY CLASSIFI-
CATION OF THIS PAGEUnclassified
19. SECURITY CLASSIFICA-
TION OF ABSTRACTUnclassified
20. LIMITATION OFABSTRACTUL
NSN 7540-01-280-5500 Standard Form 298 (Rev. 2-89)
Prescribed by ANSI Std. 239-18 298-102
Approved for public release; distribution is unlimited.
RE-ENGINEERING OF A MISSION CRITICAL SATELLITE
COMMUNICATIONS COMPONENT TD1271B/U
Joe T. Hirschfelder
B.A., San Diego State University, 1979
Laurence M. Nixon
B.A.. University of California at San Diego, 1983
Submitted in partial fulfillment
of the requirements for the degree of
MASTER OF SCIENCE IN SOFTWARE ENGINEERING
from the
NAVAL POSTGRADUATE SCHOOLMarch 1?98
DUDLEY KNOX LIBRARYNAVAL POSTGRADUATE SCHOOLMONTEREY CA 93943-5101
ABSTRACT
Legacy software in general, and in the DoD environment in particular, presents an
ever-growing maintenance challenge to program managers. The software is cumbersome,
written in arcane languages and hosted on aging technology hardware. One of the
options that is available to the program manager to alleviate this problem is to re-engineer
the existing software product and update it to a newer language software hosted on
modern equipment.
We review existing research, select a re-engineering methodology, develop an
implementation strategy and then perform a 'case study' examination of this
methodology and strategy. For the case study, we take a legacy system, the Navy satellite
communications multiplexer, the TD1271B/U Multiplexer, examine its existing
documentation, develop a code analysis tool, perform the re-engineering on one of its
sub-systems, and analyze the results. We provide observations, recommendations and
conclusions on changes, enhancements and pitfalls to the methodology that will be of
assistance in future re-engineering efforts of legacy systems.
TABLE OF CONTENTS
I. INTRODUCTION 1
A. BACKGROUND 1
B. RE-ENGINEERING 3
C. OUR THESIS 4
II. TD1271 B/U MULTIPLEXER 7
A. BACKGROUND 7
B. TIME DEVISION MULTIPLE ACCESS (TDMA) 8
C. TD 1271 B/U MULTIPLEXER 8
D. TD-1271B/U MULTIPLEXER DESIGN 12
III. THE RE-ENGINEERING PROCESS 15
A. PROCESS PHASES 15
/. Phase One: Abstraction 16
2. Phase Two 18
3. Phase Three 20
4. Phase Four 20
IV. THE CASE STUDY 21
A. THE TD1271B/U MULTIPLEXER DATA BUFFERING PROCESSOR 21
B. DBP INPUT/OUTPUT SIGNALS 21
C. THE RE-ENGINEERING STRATEGY 21
/. Code review 22
2. Extracting the Structure 23
3. Extracting the Control Flow 23
4. Data Flow 26
D. Use of the TD-1271 as an Engineering Guide 28
E. Documentation Review 28
/. Phase One: Architecture Definition 29
2. Phase Two: Requirements Definition 31
F. RECOMMENDATIONS 33
V. CONCLUSIONS 35
APENDIX A BIBLIOGRAPHY 37
APPENDIX B TD-1271B/U SUBROUTINE CALL TREE 41
APPENDIX C PARSER.ADA 63
APPENDIX D DATA BUFFER PROCESSOR SOURCE CODE LISTING 69
APPENDIX E DATA BUFFER PROCESSOR LABEL CROSS REFERENCE 145
APPENDIX F PHOTOS 163
INITIAL DISTRIBUTION LIST 165
vn
LIST OF FIGURES
Figure 2-1 Time Division Multiplexing 9
Figure 2-2 Typical TD1271B/U Frame Configuration 9
Figure 2-3 A Basic TD-1271B/U Configuration 13
Figure 3-1 The Re-Engineering And Implementation Process 15
Figure 4-1 Inputs and Outputs To DBP Module 22
Figure 4-2 DBP Control Flow Diagram 25
Figure 4-3 Multiple Entrances and Exits 26
Figure 4-4 101A Control Flow 27
Figure 4-5 DBP High Level Structure Chart 30
Figure 4-6 Control Flow Diagram 32
IX
I. INTRODUCTION
A. BACKGROUND
One of the more complex issues associated with a software organization of
significant size is the existence of large amounts of legacy software. This software
typically was developed years ago, modified extensively by a variety of programmers,
and is currently operating on obsolete systems hardware. The programmers that worked
on the various modifications have moved on to new projects or left the organization
entirely. In most instances, limited or no documentation updates have occurred. These
factors all build upon each other until the software is no longer supportable. The
hardware is typically old and all of the original processor reserve has been consumed,
making the hardware as unsupportable as the legacy software that runs on it. The overall
system is so bad that it has but one single saving grace. It works.
The program manager is charged with the responsibility of continuing to provide
the services of the program while watching his ability to support the program fading.
This leaves the program manager few options.
One option is to live with the system as it exists and continue to 'Band-Aid' any
problems as best one can. This tends to be an expedient answer early in the life of the
program, but sooner or later, this will no longer be a viable option. At some point in time
the program manager will not be able to continue to support this legacy code due to
physical constraints or expense.
A second option is to completely replace the existing system. This involves
reviewing the current program requirements and documentation, as well as the
organization operations and goals, and then to factor in those enhancements that may
have forced this change in the first place. Based upon this review, a new set of
requirements are generated. From these new program requirements, the program
manager will need to select hardware, programming language(s). design architecture, and
finally implement the software. This is then followed by a training curve to allow the
operator to learn the new system. This approach has several drawbacks. The first is
1
usually a lack of current documentation to start the review from. It is commonplace for
organizations to try to limit their maintenance costs at the expense of the quality
documentation updates. Another problem are the 'hidden' enhancements; functions that
are routinely use by operators, but are not documented as requirements or options even in
well maintained documentation. A third is the amount of time needed to implement a full
development. And, of course, there is the cost. Often for large systems the costs of a full
development run hundreds of thousands of dollars, and it is not unknown for a single
program's development to cost millions of dollars.
A third option is to scrap everything except for the working code and perform an
in-depth analysis on the code to extract the requirements. This will tell the analyst what
the code is actually doing. To this must be added the additional requirements not
currently implemented. The state of the legacy code can be a drawback to this method.
The success of this method is dependent upon the standards and practices used while
maintaining the code. If the code was maintained by a series of programmers, each with
their own standards and practices, the analyst may find extracting the information to be
quite a challenge and extremely time consuming.
The fourth option is a combination of the last two, extracting the best features of
each of the two options to limit the cost and time associated with updating the system.
This is implemented by performing a code review and using the existing documentation
as a guide to the software's basic architecture. This combination of methods reduces the
amount of time required to perform the code analysis, while providing a quality
requirements trace.
Each of these options has it's own advantages and drawbacks. Early in the life
cycle of a software system it is fairly inexpensive to correct and fix an immediate
problem. As more changes are made it becomes more expensive to correct defects or
make changes. It is estimated that in a large data processing shop, 70 to 80 percent of the
budget is consumed by maintenance of legacy programs [40]. Eventually the legacy
system will need to be modernized.
When planning the modernization of a computerized information processing
system, there are two basic items to consider: the hardware and the software that
comprise the system. In the normal course of events finding a new target platform is the
easier process. The speed, power, and memory capacities of computer hardware have
been increasing; while hardware size and costs have been steadily falling. Replacing the
software itself is another question. As the costs of hardware have fallen, the costs of
software development have been rising.
This contrast of costs, cheap hardware and expensive software development, leads
the program manager to look at ways of lowering the cost of the software while updating
the hardware platform. The first approach would be to take the working software and
port it to a new, more powerful platform. This can be done in limited circumstances, but
he will normally be restricted to remaining within the existing family of processors (i.e.
going from a Motorola 68030 to a Motorola 68040). In the general case, he will run into
the problem of incompatibility. The existing legacy software will not run on the
processor in the new platform. This places the program manager at the crossroads noted
above: which of the four options is best for the project?
In this thesis we will examine the 'option four* method of modernization, that of
utilizing both the existing code and documentation to develop a new baseline program
hosted on a more modern hardware platform; the process of Re-Engineering.
B. RE-ENGINEERING
There are several definitions for re-engineering in the literature today [4 1 ] as
described in the following:
• "Software reengineering is any activity that (1) improves one's understanding
of software, or (2) prepares or improves the software itself, usually of increased
maintainability, reusability, or evolvability".
• "The process of modifying the internal mechanisms of a system or program
the data structures of a system or program without changing its functionality."
• "The examination and alteration of a subject system to reconstitute it in a new
form and subsequent implementations of that form."
• "Re-engineering changes the underlying technology of a system without
affecting the overall function, while reverse engineering is the backward
engineering of a system to the specification stage. ... Re-engineering ... is the first
step toward reverse engineering"
As can be seen from these quotes, the terminology of the process is not clearly
defined. Some believe that Re-engineering is the beginning of the Reverse Engineering
process, other that Reverse Engineering is the beginning of the Re-engineering process.
For our purpose within this thesis, we will look upon reverse engineering as the
systematic review and analysis of existing code to establish an information base from
which to re-implement the system i.e., the first step in the re-engineering process.
Even within these somewhat conflicting terms, there are levels of re-engineering.
If the only requirement is to "copy" the existing system onto a new platform, it will only
be necessary to extract the architecture from the existing code and documentation before
you can re-implement the same architecture in a new environment. If you want to update
the architecture, then you will need to extract up to the design level before re-coding can
start. Depending on the level of re-design you wish to implement you will need to extract
to one level higher to allow a baseline for forward engineering at the level you want to
implement.
C. OUR THESIS
For our thesis we selected a re-engineering methodology from existing research
that we thought had the best application to legacy systems. We then examined this
methodology of re-engineering by performing a case study. We took a legacy system,
examined the existing documentation, performed the re-engineering on one of it's sub-
systems and then analyzed the results. Based on this analysis and other observations we
will recommend modifications to the methodology that will assist in future re-engineering
efforts. Our legacy code for this procedure is a Navy satellite communications
multiplexer: the TD1271B/U Multiplexer.
II. TD1271B/U MULTIPLEXER
A. BACKGROUND
Until the space age, the high frequency (HF) spectrum was the only means of
passing messages over long distances by radio. Although other frequency spectrum
radios were available, their characteristics limited their use to iine-of-sight' operations or
limited data rates. With the space age came the ability to place an Ultra High Frequency
(UHF) radio repeater in a geosynchronous orbit. By placing a transmitting station high
above the earth, it's iine-of-sight' earth coverage was greatly expanded. The
characteristics of the UHF Satellite Communications lended itself well to the needs of the
Navy. It provided dependable over-the-horizon communications capability at accelerated
data rates. The high data rates allow the transfer of data and voice. As the capabilities
became more developed and terminals became more prolific, time lags and data delays
became more regular. System throughput began to suffer. This left the Navy with a
limited number of options. One was to reduce the number of users and the amount of
data they were sending. This was an extremely unpopular option to the Fleet. They had
grown to depend on the types and levels of data being supplied, and their effectiveness
would suffer if any of the data were discontinued. The second option was to acquire
more UHF channels. This was not a viable option either. The commercial world was
rapidly expanding into the UHF spectrum, and lobbying congress to decrease the number
of channels reserved for military use and sell them to commercial interests. The only
option left was to find ways to utilize the existing channels more efficiently. To meet the
need for more efficient usage of the UHF channels the Navy developed the TD-1271B/U
Multiplexer.
The basic philosophy behind the TD1271B/U Multiplexer, or MUX. is to use
Timed Division Multiple Access (TDMA) principals to integrated multiple nets, each
operating on an independent channel, onto a single channel. By multiplexing several
channels onto a single channel more data transmission path options become available.
B. TIME DEVISION MULTIPLE ACCESS (TDMA)
In TDMA, data streams at moderate to slow data rates are input via baseband data
ports and buffered. At a point in time, predefined for each data port relative to a time
marker, this data is transmitted out at a data rate that is significantly faster that the input
data rates. While one baseband port's data is being burst out to the satellite, the other
ports data streams are being buffered, awaiting their burst opportunity. Using appropriate
bursting speeds, none of the baseband units will suffer any loss of continuity in their data.
Each will transmit and receive data just as if on a dedicated channel, without realizing the
data was multiplexed. This concept is illustrated in Figure 2-1 . The key to this process is
being able to transmit at a faster data rate than all of the baseband ports data rates
combined. The elapse time between the start of one timing mark and the beginning of the
next timing mark is generally referred to as a frame. The period of time allocated for a
transmission burst is often referred to as a time slot. Depending on the particular protocol
for the system, the TDMA Frame may contain a series of time slots with equal time
periods or may have time slots with varying time periods.
C. TD1271B/U MULTIPLEXER
In the TD1271B/U Multiplexer (MUX) operating in the TDMA-1 25 kHz mode, a
frame is defined as a period of time equaling 1 .38666 seconds.1
This frame not only has
varying time slot periods, but is re-configurable based on users needs. The allocation of
time slots is determined by the definition of a three digit (hex) Frame Format code. Each
of the digits defines the configuration of one of the three user segments contained in the
frame. A typical MUX frame is diagrammed in Figure 2-2.
The MUX waveform accommodates multiple input/output (I/O) bit rates and
radio frequency (RF) symbol burst rates, as well as dynamic assignment of users between
channels. Operation of the MUX waveform is transparent to the user baseband
equipment, except for TDMA frame-time delays.
1 The TD1271 MUX is also capable of a secondary waveform (TDMA-2 or TDMA-3) that utilizes a 5kHz
channel. Discussion of this 5 kHz waveform is beyond the scope of this thesis.
TIME
TIMINGMARK USER 1 DATA USER 3 DATA USER 2 DATA
TIMINGMARK
TDMA MULTIPLEXER
y~i I
BASEBANDUSER#1
BASEBANDlUSER #2
BASEBANDUSER #3
Figure 2-1
Time Division Multiplexing
K-1.3866 SECONDS -1
50 mSH 75 781mS 45.521 mSM HR R
c AL T
rc •A'
NI E
CB' 'C
SEGEMENT N S SEGEMENT SEGEMENTG i >wE
K T w
136.667 mS H67.344 mS
729.375 mS ->w-281,979 mS
Figure 2-2
Typical TD1271B/U Frame Configuration
The MUX waveform is organized as a repetitive frame structure with
1.386-second frames, as depicted in Figure 2-2 (Frame Type 2 is depicted2
). Frames are
subdivided into slots assigned for: (a) orderwire communications [channel control
orderwire (CCOW) and return channel control orderwire (RCCOW)]; (b) system support
functions (range time slot and link-test time slot); and (c) user segments A, B, and C.
User segments A, B, and C comprise multiple user slots. Each of the 5 slot types in the
MUX waveform is identified below:
1
.
CCOW slot . The CCOW slot is used by the channel controller to
broadcast CCOWs. One of the 20 defined CCOWs is transmitted by the
Channel Controller in each frame. The CCOW contains the information
required to control operation of the waveform and provides a timing mark
for the frame.
2. RCCOW slot . The RCCOW slot provides users the opportunity to
send data, including requests for access, to the channel controller.
3. Range slot . The range slot provides time for users (including the
channel controller) to transmit and receive a data burst for the purpose of
calculating the range to the satellite, based on measured round-trip delay
time.
4. Link test slot . The link test slot provides time for users (including
the channel controller) to transmit and receive a test data stream to
determine the current operating conditions, based on the measured bit
error ratio (BER). The link test slot is also used to perform dedicated
range measurements, when the link test slot is in an even-numbered
receive frame. This is known as an even link test (ELT) slot.
2In order to support half duplex terminals, the MUX waveform supports a Frame Type 1 that moves the
'C segment slots between two halves of the 'B' segment. The half duplex network would transmit in the
first 'ET segment and receive in the second 'B' segment.
10
5. User slot . User slots are allocated for transferring data between
users. Associated with each user slot is a specific baseband data rate,
encoding schema, and burst rate.
Each slot within the MUX waveform consists of three elements: (1) a preamble
for receiver carrier, bit, and data synchronization; (2) data; and (3) guard time to avoid
user-to-user interference. The receiving equipment achieves carrier and bit
synchronization for each slot in the waveform.
The MUX waveform is designed to operate on 25-kHz non-processed channels of
current and planned UHF SATCOM satellites.
The MUX accepts input from digital communications systems via it's four
baseband data ports. The baseband data ports will accept data at rates of 75, 300, 600,
1200, 2400, 4800, and 16000 bits per second. In order to maintain data integrity,
Forward Error Correction (FEC) encoding is used. This FEC coding is convolutional,
with interleaving. Encoding rates of lA or V* are used. The MUX will output the data to
the radio for transmission at one of three burst rates; 9,600, 19,200 or 32.000 symbols per
second. The interface between the radios and the MUX is over 70 MHz intermediate
frequency carrier lines. Reception of data is processed in a similar, but reversed, fashion.
One of the most critical functions of the MUX in this process is to maintain
consistent timing within the frame. This timing begins with the reception of the timing
mark to begin the frame. In the MUX system, all timing is based on the reception of the
Channel Control OrderWire (CCOW). The primary CCOW is the Master Frame CCOW
and contains the current frame format number, frame sequence number, and
cryptographic data needed to define operations on this channel. The Master Frame is
transmitted every eight frames. Other CCOWs are available to direct net operations,
request data from the various terminals3operating on the net and maintain timing.
J
Although we are only concerned with software and hardware of the TD1271B/U, there are other terminals
that are operating on nets with the TD1271BAJ. When discussing operations in general, we will use the
term terminal to include all of the possible systems operating on a channel.
11
CCOWs are generated and broadcast by a specifically designated terminal. Each channel
will only have a single terminal generating CCOWs at a time (the Primary Channel
Controller (PCC)) although other stations could be designated as alternate controllers
(ACC).
Once the MUX has successfully received the CCOW, the next critical event is to
calculate the terminals distance to the satellite in units of time. The standard time unit in
the MUX is the 'time chip'. There are 19,200 time chips in one second. In order for all
terminals on the net to receive data in the proper locations within the frame, all
transmissions are timed to be correctly placed within the frame at the satellite. In order to
insure this 'perfect' frame at the satellite, and by extension at each receiving terminal, the
distance to the satellite must be known. This is achieved first at power-up by sending a
ranging burst during the designated ranging slot, and updated periodically using the Even
Link Test (ELT) slots.
D. TD-1271B/U MULTIPLEXER DESIGN
The basic TD-1271B/U installation comprises a TD-1271B/U multiplexer, a
KGV-1 1 encryption device, a radio transceiver (a Navy WSC-3 pair is typical) and from
one to four baseband user devices (ANDVT, ON- 143 or teletypewriters would be
typical). Figure 2-3 provides a block diagram of a basic TD-1271B/U's configuration.
The software in the MUX is divided into three Computer Software Configuration
Items (CSCI); the System Control Processor (SCP), the System Timing Processor(STP)
and the Data Buffer Processor (DBP).
Each CSCI has a Memory Program Unit (MPU), an interface board, and at least
one 24 k byte Ultra Violet Erasable/Programmable Read Only Memory (UVEPROM)
board that contains the executable program. The SCP CSCI utilizes two UVEPROM
boards.
12
The Memory Program Unit (MPU), hosts the Central Processor Unit (CPU), a
Motorola 6800, along with the System Random Access Memory.
^ w
Radio
TXRadio
RX
j L
rBaseband
User#l
i Baseband
User #3^
TD-1271B/U^
,4Baseband
User #2
Baseband
User #4
^ p ^ ^
v ir
Optional
Controller KGV-11
Figure 2-3
A Basic TD-1271B/U Configuration
13
III. THE RE-ENGINEERING PROCESS
A. PROCESS PHASES
Re-engineering begins with the assembly of all resources of a software system.
This includes, but is not limited to the software source code, design documents, software
development folders, test reports, software trouble reports, sample inputs, sample outputs,
and, if practical, interviews of the implementers and/or maintainers. Typically the only
reliable source of information is the software source code and for that reason re-
engineering of an existing software system starts at the code level. The software
documentation, many times, are not kept current with the software; however, it can still
be a useful source of information and can be used as an engineering guide. The process
in which existing software is transformed into a new implementation can be described in
the Figure 3-1 [30].
Abstraction / /
Transformation
\ \ Re-Implementation
w
Design
///Implementation
V\Old Implementation New Implementation
Figure 3-1
The Re-Engineering And Implementation Process
15
There are three phases to the re-engineering process. The first phase, abstraction,
extracts the detailed design information from the documentation and the code. For those
familiar with MIL-STD-498, this is analogous to creating a Software Design Document
from the existing system. The second phase allows for the modification of the design by
adding, deleting, or modifying requirements. The third phase is a re-implementation of
the system. The focus of this thesis is the reverse engineering process that recovers the
design from the old implementation. This methodology will be validated by executing
the re-implementation of the recovered design using a different language and different
processor than the old implementation.
1. Phase One: Abstraction
In this phase, the documentation and code can be used to provide the information
needed to support the re-creation of the system design. Since the TD-1271
documentation has been shown to be unreliable, the source code will take precedence in
this phase with the documentation providing background information. The products
developed during abstraction are as follows [30]:
1
.
Structure Chart. This is a hierarchy of the modules as extracted from
the program where each node in the chart corresponds to a procedure or function
in the program. Since the goal of abstraction is to remove the language
dependencies from the code, it is important to treat library calls as part of the
system and include them in the structure chart. The language selected for the re-
implementation phase may not provide the same library services. Any language
dependent library calls may need to be manually re-implemented. The structure
charts for this thesis are based upon the structure charts identified in reference
[37]. The structure charts provide a visual representation of the software system
that is useful in determining organization and dependencies. This information,
once derived, is used to develop the structure charts for the enhanced system.
16
2. Module Description . This description is a combination of the module's
inputs, processing, and outputs, with the algorithms and constraints identified.
This description is produced for each module in the structure chart. In addition to
a narrative of the module's processing, a language independent form using a
specification language such as SPEC [42] or a Program Design Language (PDL)
is used to capture the requirements of the module. For this documentation to be
useful it is important to verify, through code reading, that the supporting
documentation is up-to-date. A case tool that allows this information to be tagged
to each element in a structure chart would be very helpful. One of the original
goals was to identify a tool to preserve this information as part of this thesis, but
due to budgetary considerations no tool was procured.
3. Data Flow Diagram . At a module level the data flow diagram shows the
flow of data between the modules. Within the module that the data flow diagram
is decomposed, showing at each successive decomposition level the
transformations that occur. This information is also used to develop the
algorithms that need to be documented when the design is re-implemented. These
algorithms can be described using mathematical notation, a Program Design
Language, or other notation. These algorithm descriptions are added to the
module description in step 2. The process consists of constructing the DFD of
level i+1 from level i. Each level explodes the data into transforms, data
repositories, and data flows [37]. Data repositories will be represented as boxes,
data transforms as circles, and data flows as connecting lines between transforms
and data repositories. The transforms are then used in phase 2 to develop the
detailed design.
4. Control Flow Diagram . This will identify the control structure of the
program between the modules. This information is used to identify the logical
relationships between the modules, verses the physical relationship described in
step 1 . [39] will be used to create this diagram.
17
5. State Transition Diagram. This will identify the states and modes in
which the software can reside and identify the events that cause a change in the
state of the software and the processing that is to occur due to the state change,
and will identify the modules active for each state. There may be more than one
state transition diagram depending upon the concurrency of the system. The
notation for this diagram will follow those in [39].
Once the design information has been extracted, the resulting recovered design is
reviewed for consistency. Any missing items of information should be investigated and
added to the recovered design [30]. While it is the goal of this first phase to extract the
design and leave behind the vestiges of the language and platform, the design may still
have an organizational structure that was due to the implementation language and
platform. Before entering phase two, the extracted design information can be modified to
refine the design for portability. For example, the TD1271B/U uses multiprocessors with
serial communications between them to perform the processing required. When the
system is re-engineered, it is anticipated that this system will be implemented using Ada
tasking on a single microprocessor. The detailed design should be abstract enough to
make this possible.
2. Phase Two
Phase one used the supporting documents and the code to extract the detailed
design information. This phase attempts to link the detailed design information with the
requirements through the use of a requirements traceability table. This table binds the
modules with the requirements that they partially or fully implement. This table will
need to support one to many and many to one. That is, one requirement may be spread
out over one or more modules and many requirements may be identified with one
module. Depending upon the state of the supporting documentation this can be an easy
task or a major effort. Requirements are needed if the system being reengineered is also
having the requirements modified as well. Once the requirements have been modified,
the modules affected need to be updated. It is not unusual at this phase to add and delete
18
modules from phase one. This phase is identified for completeness only; this thesis will
not attempt to construct a requirements traceability table.
The TD1271B/U was developed under DOD-STD-1679 and any re-engineering of
the TD1271B/U would use a tailored MIL-STD-498 approach. The purpose of the re-
engineering effort is to develop, using the existing resources of the project, those products
necessary to pass the exit criteria of the detailed design phase and allow the system to be
coded. The primary product that is developed during the detailed design phase is the
Software Design Document. When looking at the data item description (DID) the
following sections are used to provide the programmer with the information necessary to
code the system. From the re-engineering activities performed on the TD1271B/U in the
three phases described above, the following module information will be developed:
Module Name
Module Description
Constraints, Limitations, or Unusual Features in the Design
Special or Unique Algorithm Description
Called by
Calls
Triggering Event (tasks only)
Implicit Inputs
Explicit Inputs
Implicit Outputs
Explicit Outputs
Hardware Dependencies
Sizing and Timing
Informal Test Procedures
19
If computer aided design tools were used during phase two, such as the Computer-
Aided Prototype System (CAPS), much of the information needed for the SDD is
contained within the various reports that the tools produce.
3. Phase Three
At the completion of phase two the design of the current system has been
extracted. Before starting the re-implementation of the system for the new target
language and hardware, any changes to the design is done in this phase. This could be a
re-organization to take advantage of any special capabilities of the compiler or hardware.
In addition, this would be the time to modify the requirements of the system and fold
those changes into the design. Upon completion of this phase the design should reflect
the system as wanted by the customer.
4. Phase Four
The output of phase three is used in this phase. This is the coding of the extracted
and possibly modified design. The detail design is re-implemented using the desired
methodology (i.e. OOD, structured design, etc.) in the desired language for the desired
target platform. This phase is executed in the same manner as any new development.
20
IV. THE CASE STUDY
A. THE TD1271B/U MULTIPLEXER DATA BUFFERING PROCESSOR
The Data Buffer Processor (DBP) provides the elastic buffering required to pass
continuous data between the Systems Control Processor (SCP) and I/O ports while
transmitting or receiving data in bursts over the satellite channel. The heart of the DBP
consists of 24K bytes ofEPROM containing the software program. The program is a
loop structure which sequentially scans internal control points and the baseband users to
determine the actions is required. If, for example, a user terminal has entered a transmit
request at the baseband I/O port, a check is made of the port requirements, the port is
configured to receive data and the transmit acknowledge is sent to the baseband
device[43]. Figure 4-1 provides a block diagram of the relevant input and output signals
to the DBP. 4
B. DBP INPUT/OUTPUT SIGNALS
The DBP[49] data flow is described in Figure 4-1. Figure 4-1 is a description of
data and control signals that are input to or output from the DBP[49].
C. THE RE-ENGINEERING STRATEGY
One of the primary goals of this re-engineering effort was an attempt to use the
existing source code to extract the design of the system and to produce well designed,
portable code. Ada was used as the target language during the extraction process. Since
this software was originally written before the advent of structured design, we didn't
attempt to use an Object-Oriented Design approach, but used a structured design
approach.
4This listing is not complete for the TD1271. Certain hardware control lines are system dependent and
would not be applicable to this re-engineering effort.
21
BASEBAND USER
A A A A ATX TX XMIT TX SLOT SIG RX RX
DATA CLOCK REQ ACK TIME ACK CLOCK DATAMARK
v \r V
DBP MODULE
T
CLC
X)CK
1
TXCCOWRCCOW
r J
TXDATA
r i
A A A ARX RX RX STATUS
DATA CLOCK CCOWRCCOW
r
A ASTATUS RX TX PREAMBLE
STATUS STATUS CODECONTROL CONTROL
V
SCP MODULE STP MODULE
Figure 4-1
Inputs and Outputs To DBP Module
As outlined in Chapter 3, the first phase of the re-engineering effort is to develop
Structural Diagram s, Module Descriptions, Data Flow Diagrams, Control Flow
Diagrams, and State Transition Diagrams. The code was used to extract the structure,
control flow, and state transition diagrams. The documentation was used to develop the
module descriptions, provide a high level data-flow diagram and to verify the control
flow and state transition diagrams whenever possible.
1. Code review
As noted by T. Bigerstaff [10], a key objective of design recovery is to develop
structures that will enable a software engineer to understand the program. Our first step
in this process was to identify and partition the code into procedures. This proved to be a
task of greater difficulty that we had anticipated. Not only were we dealing with a
22
somewhat cryptic language, we were also faced with a coding style that extensively
utilized 'jump' and 'branch' commands to navigate from one set of instructions to
another. This programming style was intended to reduce the total size of the code by
reusing existing code rather than re-writing it. Programmers coding during this period of
time were highly praised if they could reduce the length of the overall program by even a
few bytes, regardless of the long term maintenance problems created.
2. Extracting the Structure
The first step was to extract the modules from the code. Modules were defined as
a section of code referenced in a Jump to Subroutine (JSR) or Branch to Subroutine
(BSR). Even though it was recognized early on that this effort would focus only on part
of the TD-1271 system it was important to extract the structure of the entire system to
identify the areas in which the rest of the re-engineering effort would focus.
The code for the three major sub-systems were examined and mapped using a
Microsoft Excel spreadsheet to record the results (see Appendix B - Subroutine Call
Tree). It should be noted that this Subroutine Call Tree is not complete. The TD-1271 is
not a procedural based design, that is it makes extensive use ofGOTO statements for
control between subroutines. The effort to extract the subroutine calls using the JSR/BSR
opcodes was sufficient to identify which sub-system to apply the more rigorous code
examination to. To produce the Subroutine Call Tree each file comprising the TD-1271
was opened in a word processor and a search was conducted on the words JSR and BSR.
At each occurrence the subroutine containing the call and the subroutine that was being
called were entered into the Subroutine Call Tree. Duplicate entries, the same subroutine
call from the same subroutine, were not noted. The Subroutine Call Tree contains 1 183
subroutine calls. After examining the results of this effort the Data Buffer Processor was
selected for further investigation.'fc1-
3. Extracting the Control Flow
In order to extract the control flow from the code it would be necessary to have
some sort of cross reference available to consult. There weren't any tools available to do
this so one was developed. A parser was written in Ada using an Alsys host compiler for
23
the IBM-PC. This parser uses two passes to build a cross reference for the labels in the
source code and a source code listing with line numbers. The first pass identifies each
label and the line of code where it is defined. The second pass identifies the line number
of code where each reference occurs. References to labels that are not found are reported
as errors. The only errors encountered were relative indexes based upon a label (e.g.
LABEL 1+2). The source code listing is in Appendix D and the Cross Reference Listing
is in Appendix E. There will be references to line numbers in the source code from
Appendix D later on.
A detailed examination of the DBP code identified the inter-subroutine control
flow and a disturbing software design methodology, or to be more accurate - lack of one.
As you can see by the control flow diagram, Figure 4-2, the designers used some
programming practices that made it very difficult to extract the control flow. The first
difficulty encountered was the use of multiple return from subroutine (RTS). Rather than
having one entrance and exit from the subroutine there were multiple exits. This was
further complicated by the use ofGOTO statements where a JSR was used to enter a
subroutine and both a RTS and a GOTO statement was used to return (IOIPT to IOILF
in Figure 4-2). There were subroutine calls where the called subroutine executed a
GOTO statement to pass control, not back to the caller, but to another routine (IOIPT -
IOILS - I02PT in Figure 4-2). There were manipulations of the return stack to short
circuit the return from a subroutine call (Appendix D, line numbers 1044-1045 and 1099-
1 100 in IOIPT and repeated for the other three channels). There are examples in which a
routine has multiple entrances and exits (Figure 4-3). The way this code was designed
made it extremely difficult to convert to Ada, and impossible to meet the goal of having
code that is well designed following this conversion. The result was becoming as poorly
designed as the original. As stated earlier, this software was designed prior to the
introduction of what is now considered modern programming standards. Design
decisions were made based more upon memory usage and execution speed than having a
system that was easy to maintain.
The subroutine IOIPT was examined for developing the inter-subroutine control
flow. This was based upon the conditional statements within the code. This inter-
24
h.
Start
iTDMA
1561 INIT
68
W
V
RBI195
STUFF4299*>>
tl BITRAT642TBI
692 SOFAA2914
VIOILF1065 IOIPT
984
LD11107
IOILS1030
<*. ^>
VI02LF
1511
^I02PT
1430
LD21553
w
I02LS1476
->
1 r
I03LF1968
I03PT1887
LD32010
I03LS1933
-**
1 r
I04LF2425
I04PT2344
LD42467
1
I04LS2390
J*
^ r
BSERV2801
SOFA2906
+SOF2883
^>
Subroutine call ^ ..
Return from Subroutine ;
Jump/Branch
LEGEND
>•
>-
VSOFAA
29141SIF3746
\ r
1
Figure 4-2
DBP Control Flow Diagram
25
TBI^JSR
RTSSOFAA ^ This subroutine call is in the middle
of the thread executed by SOF
SOFBSR SOFA
^ This subroutine call has a number of^
return points depending upon
conditional statements within the
... code.
RTS
The use of the jump instead of a
SOFA . . . <4 subroutine call makes conversion to
BEQ SOFAA Ada very difficult.
RTS
SOFAAJMP SOFY ^
Again, depending upon the outcome
^ of a conditional statement the return
. . . from subroutine can come from
RTS SOFAA or SOFY
SOFY
Figure 4-3
Multiple Entrances and Exits
subroutine control flow was found to be as difficult to convert as the intra-subroutine
control flow. The control flow for subroutine IOlA can be visualized with Figure 4-4.
As Figure 4-4 depicts, this would be an example of "spaghetti code". In order to
overcome this spaghetti code problem it became necessary to reduce the code to 'mini'
routines, adding 'jumps' to the end of each code fragment, so each fragment would be a
stand alone routine. Each fragment could then be moved at will to try to untangle the
subroutine's control flow. It too was far more difficult than it was worth. The result was
a subroutine that was poorly designed.
4. Data Flow
The data was analyzed to attempt to produce a data flow diagram. The primary
data flow used ringed buffers. The declared buffer started at its own starting address and
ended at the starting address of the next declared buffer (e.g. an index pointer was set to
26
I01A
J^* IOIY
I01AA\l/
IOIYB
IOIB
101 YD
I01YE I01YF
I01YEO <J^_
IOIYEI
I01XQ«£-
I01E
3EI01F
IOIFA
IOIYG
3EIOIYH
^e:
I01YI
3EIOIYJ
3_IOIYK
3EIOIYL
3LIOIYM
31IOIYN
~^7~
IO1Y0
I01YP
JLIOIYQ
<-
<^
<-
-3> I01YA
I01XP
2> I01CA
I01D
^_-> I01YC1
I01H
±.IOIHA
i^_
I01HB
~1T~
101 YA1
IOIO
IOIP
I01YC ^-
ion
3EIOIK.
iz:
ion
3EIOIK.
31IOIM
3HI01N2
31I01N3
I01N4
I01N5
JLI01N6101N9
lL1O1N10
I01G
Figure 4-4
101A Control Flow
27
the starting address of a buffer and was incremented until it equaled the starting address
of the next buffer). This hard coding is the easiest to overcome, but it is a glaring
example of the way the software written. These ringed buffers can be easily defined
using a ring buffer generic package in Ada where the data is inserted and extracted using
procedure and function calls. Error handling can be included to cover the cases of
underflow and overflow. The size of each buffer is then easily established during
elaboration based upon the size specified. It was determined that the best source of
information to establish a high level data flow diagram was the documentation. This data
flow is shown in Figure 4-1 . The data flow between the modules of the DBP are
primarily indirect by using data stores. It was decided that the effort to describe this data
flow was of little use and was not done.
D. USE OF THE TD-1271 AS AN ENGINEERING GUIDE
It was during the effort to establish the control and data flow diagrams that the
determination was made that the TD-1271 should be redesigned from the top down. The
source code as designed didn't support the re-engineering effort except as an engineering
guide during the redesign processes.
The interrupt handlers can be used to establish the tasks responsible for the input
and output of data to the DBP subsystem. While the modules are not suitable for re-
engineering, the organization of the main modules can be useful in partitioning the new
system. You can see by Figure 4-2 that there are four channels that are serviced in a
round robin method. The new system can also use this organization. The most valuable
asset the current TD-1271 has is by providing a system that works. A comparison
between the behavior of the system to various inputs and what is specified in the
documentation can give a good indication on the state of the documentation. It provides
a strong baseline between stimulus and response that can assist in the formation of the
new design.
E. DOCUMENTATION REVIEWAs was noted in the previous section, attempts to extract the requirements directly
from the code became a prohibitively tedious and difficult task. This left only the
28
original documentation with which to attempt to baseline the requirements. The primary
documentation available for the Data Buffer Processor program includes the Program
Performance Specification (PPS) [49], the Program Design Specification (PDS) [50].
Also available are the system level PPS [46] and PDS [47] for the TD1271B/U. The
factors and problems noted about documentation in Chapter I are evident in the
TD1271B/U's documentation, and bring it's overall accuracy into question. The
documents do however provide the basic requirements as they were known as late as
1987. It is these requirements that we shall briefly examine within this section relative to
the re-engineering plan detailed in Chapter III.
1. Phase One: Architecture Definition.
a. Structure Chart
The DBP PDS [50, page 3-1] provides a basic structure chart. This is
reproduced here as Figure 4-5. This structure chart does not include the modules for
initialization and setup.
b. Module Description
Module descriptions for the six 'run time' modules are provided in both
the PPS and in the PDS for the DBP. Setup and initialization are not specifically listed.
Briefly these six modules are:
1
.
Receive Burst Initialization Module (RBI) . This function
processes the receive burst notification from the System Timing Processor.
It initializes the DBP's hardware, the I/O ports flags and pointers, and the
Service Receive Burst FIFO function.
2. Transmit Burst Initialization Module (TBI) . This function
processes the receive burst notification from the System Timing Processor.
It initializes the DBP's hardware, the I/O ports flags and pointers, and the
Service Transmit Burst FIFO function.
29
Receive Burst
Initialization
Module
I/O Port
Service
Module
Transmit Burst
Initialization
Module
i
ik A
rr
•
i
Service
Receive Burst
FIFO Module
kInterrupt
Service
Module
wService
Transmit Burst
FIFO Module
P W
Figure 4-5
DBP High Level Structure Chart
3. I/O Port Service Module (IQ1PT-IQ4PT) . These four modules
services each of the four baseband ports. If the I/O Transmit Request
input is true, the DBP will accept I/O port data and store it in the port's
data buffer. If the I/O Transmit Request input is false and there is receive
burst data for the port, then the I/O port service will output this data from
the data buffer to the baseband equipment.
4. Service Receive Burst FIFO Module (SIFV This module inputs
receive burst channel data and stores it in the data buffer.
5. Service Transmit Burst FIFO Module fSOF) . This module
outputs the I/O port's transmit data from the data buffer to the burst
channel.
6. Interrupt Service Module (IRS) . This module communicates
with the System Control Processor. It receives I/O port bit rate and
connection status, and it receives/transfers orderwire messages on an
interrupt basis [49].
30
c. Dataflow
The Data Flow is somewhat more difficult to extract from the
documentation. By definition in the DOD-STD-1679A [51], the full definition of data
variables would be documented either in the Program Design Document or in the
Database Design Document. To date we have not found any reference to either of these
documents. It is our belief that they were tailored out of the documentation package for
the original development. This leaves some of the inputs and outputs listed in the DBP
PPS and PDS open to question as to their origin and content. Clearly this is an area
where it would be necessary to track the variables through out the code to ascertain their
design and functions. In addition to the program variables, there are an assortment of
Key Lines, Clocks, and Interrupts that need to be processed and input. Figure 4-1
provides a block diagram of the inputs and output from the DBP module.
d. Control/low
From the DBP PDS we were able to extract the basic control flow
diagram. This diagram (Figure 4.6) would provide the sequencing of tasks in the new
software module. It would also provide the basis for the modules for the Data Flow
diagram. In addition to this 'basic' control flow, there is also an Interrupt handling
module capable of stopping current processing and shifting control to another module.
2. Phase Two: Requirements Definition.
The second part of the re-engineering effort is to utilize the data gathered from the
first phase to develop requirements. The high level requirements can be easily extracted
from the module descriptions.
Rl : Will receive burst timing from System Timing Processor.
R2: Will initialize hardware and software flags and statuses
R3: Will input data from the Baseband ports and store.
R4: Will receive data from the channel and store.
R5: Will forward input data from storage to the channel.
31
r START ^\
u
INITIALIZATION ^̂
VRBI
INITIALIZE FOR RXBURST FROM CHANNEL
VTBI
INITIALIZE FOR TXBURST FROM CHANNEL
IIOxPT
I/O SERVICE FORPORTS 1,2, 3. THEN 4
^ r
SOFTX BURST SERVICE
TO CHANNEL
i r
SIF
RX BURST SERVICEFROM CHANNEL
Figure 4-6
Control Flow Diagram
J>Z
R6: Will output receive data from storage to the Baseband port.
R7: Will receive and transfer orderwires to and from the System Control
Processor.
R8: Will receive port status and connection information from the System
Control Processor.
From this point, development of more detailed requirements would progress along
normal development lines. The advantage that would be gained in this area would be the
ability to check the foundation of a requirement in the code. In this way the 'forward'
engineering effort would have a existing system to validate the responses against.
F. RECOMMENDATIONSEffort can be expended to convert the TD-1271 to a high order language and have
it run on any number of modern day processors. To do so without reengineering the
system from the top down will in effect doom this system to the same fate it has fallen to
today: unstructured and not maintainable.
One of the obvious recommendations would be to use a modern programming
language. Because of the use of ring buffers between the subsystems, a method that is
valid in a new design, Ada would be the best choice. This would allow the use of generic
packages to handle the buffers. Ada's tasking and the ability to tie the task's entry point
to a hardware interrupt would be another valuable feature that makes Ada the first choice.
The original thesis called for timing studies to be conducted on the re-engineered
code. Since the code never reached the state where these studies could be performed
there aren't any hard numbers to address. However, the current system runs on three
Motorola 6800 microprocessors. The increase in the processors throughput since the
Motorola 6800 introduction would give a good indication that the entire system could fit
on any number of modern day microprocessors. The hard real time requirement is
handling the input from the modem. This data is transmitted at a maximum rate of 1 6K
bits/second. Most real-time embedded applications use Wind River's VxWorks operating
system. This operating system allows the application to read a serial port with a variable
input size. The programmer specifies the file descriptor for the serial port, the address in
33
which the data is to be read, and the number of bytes to read. In addition, VxWorks
provides an optimized task switch for interrupt handlers that has the overhead of a
function call. Once the data has been read in the data is output as processed. By proper
scaling of the input data from the modem, the processing percentage spent on handling
the interrupt can be less than 10%. With these considerations our recommendation would
be either the Motorola 68040 or the Motorola Power-PC.
34
V. CONCLUSIONS
This thesis was originally planned to be a fairly straight forward application and
review of the re-engineering process. We very rapidly ran into problems of scope and
time. There is a tremendous amount of data written on the subject of re-engineering. The
re-engineering data not only covered software, but also included business, hardware, and
other re-engineering topics. The first problem we faced was separating out the relevant
topics. After narrowing* the scope to software re-engineering, we were still faced with a
daunting amount of information to review. We found a great deal of information
presented on the general theory of re-engineering, but very little concrete information on
the application of these theories. We were able to locate a methodology to try [30].
The first phase of this methodology is the extraction of data from the existing
code. As noted by Byrne (30), tool support for this portion is a major necessity. With
appropriate tools it is possible to statically analyze and document an extensive program in
a relatively short period of time. He estimates a 150 to 1 time ratio difference between
manual analysis to an automated tool approach. Based on our experience, we would
concur with this evaluation. We were unable to locate any tool support to automate the
extraction of basic calling trees or other data from the legacy system we were looking at.
Although some were found for high order languages, there were very few listings for any
Assembly language, and none of these were for the Motorola 6800. This we believe will
be prevalent in most legacy systems. Most of the legacy systems will be in some form of
Assembly language, but there are not enough in any one language to make it
commercially feasible to develop a tool to automate this portion of the re-engineering
process.
When faced with poorly designed software it is important to start the re-
engineering work at the lowest level in which the design is masked. For example, the
preliminary design may be adequate and it was in the execution of the design that the
poor design decisions were made. However, it is more likely that the designers, knowing
the constraints of the environment in which they have to operate, like available memory,
35
will design to make optimum use of the resources available. There are examples in which
the software was written with self-modifying code in order to recover memory space used
for initialization as scratch pads for data. However, when re-engineering the system these
type of design decisions need to be abandoned and the software needs to be designed to
the standards of the times.
With the TD-1271, a tremendous amount of time was used in just trying to
understand and decipher the source code. The software, with little or no comments (see
Appendix D) and poorly designed control structure, cannot be recommended for re-
engineering. Time and effort could be expended to re-engineer the source code: It's not
an impossible task, but it is not cost effective. Nor would the result have enhanced the
supportability of the software.
The only reasonable approach for the TD1271B/U would be to start at the
requirements documentation, establish a testing criteria for each requirement, and
perform those tests on the existing system. These tests would demonstrate if there have
been modifications to each requirement that would warrant further investigation to
determine the current state of that requirement. Once the modifications to the
requirements have been made and a suitable target system identified, the task of re-
writing the software would be considered a small to medium effort when weighed against
current Navy communications systems currently under development.
36
APPENDIX A
BIBLIOGRAPHY
1 "A Conceptual Foundation for Software Re-engineering", E. Byrne, IEEE 0-8186-
2980-0/92
2 "A Framework for Reverse Engineering DoD Legacy Information Systems'", P. Aiken,
A. Muntz. R. Richards, IEEE 0-8186-3780-3/93
3 "A Software Re-engineering Process Model", E. Byrne, D. Gustafson, IEEE 0730-
33157/92
4 "A Suzuki Class in Software Reengineering", Kozaczynski,-Wojtek, IEEE-Software,
v. 8 Jan. '91 p. 97-8
5 "An Economic Model to Estimate Software Rewriting and Replacement Times",
Chan,-Taizan; Chung,-Siu-Leung; Ho,-Teck-Hua, IEEE-Transactions-on-Software-
Engineering. v. 22 Aug. '96 p. 580-98
6 "Analyzing Empirical Data from a Reverse Engineering Project", P. Fiore, F.
Lanubile, and G. Visaggio, IEEE 0-8186-71 1 1-4/95
7 "Automated Support of Software Maintenance", K. Bennett, Information AndSoftware Technology, 33(l):74-85, Feb. 1991
8 "Cash Cow in the Tar Pit: Reengineering a Legacy System", W. Adolph, IEEE
Software, May 1996
9 "Concept of the Re-engineering Life-Cycle", J. Manzella, B. Mutafelija, IEEE 0-8186-
2697-6/92
10 "Design Recovery for Maintenance and Reuse", T. Biggerstaff, Computer, July '89
11 "DoD Legacy Systems; Reverse Engineering Data Requirements", Aiken,-Peter;
Muntz,-Alice; Richards,-Russ, Communications-of-the-ACM. v. 37 May '94 p. 26-41
12 "Improving Software Maintenance Through Measurement", Rombach,-H.-Dieter;
Ulery,-Bradford-T,
Proceedings-of-the-IEEE. v. 77 Apr. '89 p. 581-95
13 "Investigating Reverse Engineering Technologies for the CAS Program Understanding
Project", Buss,-E; De-Mori,-R; Gentleman,-W.-M, IBM-Systems-Joumal. v. 33 no3
'94 p. 477-500
14 "Mandrake: A Tool for Reverse-Engineering IBM Assembly Code", P. Morris, R.
Filman, IEEE Proceedings of WCRE '96
15 "Measurement: the key to application development quality", Walrad,-C; Moss,-E,
IBM-Systems-Journal, v. 32 no3 '93 p. 445-60
16 "Planning the Reengineering of Legacy Systems", Sneed, Harry M., IEEE Software v
12 n 1 Jan 1995
17 "Program and Interface Slicing for Reverse Engineering", J. Beck D. Eichmann, IEEE
0270-5257/93
18 "Pros and Cons of Reverse Engineering", http://www.tailormade.com
19 "Recovering Design and Specifications from Source Code", Prywes,-Noah, IEEE-
Software, v. 13 Nov. '96 p. 109-1 1 +
20 "Reengineeing Procedural Into Data Flow Programs", P. Newcomb, IEEE 0-8186-
7111-4/95
21 "Reengineering Definitions", http://www.stsc.hill.af.mil
22 "Retrieving Information from Data Flow Diagrams", G. Butler, P. Grogono, R.
Shinghal, I. Tjandra, IEEE 0-8186-71 1 1-4/95
23 "Reverse Engineering and Design Recovery: A Taxonomy", E. Chlkofsky. J. Cross II,
37
IEEE Software, Vol. 7, No. 1 Jan. 1990
24 "Reverse Engineering Programs via Dynamic Analysis", H. Ritsch, H. Sneed,
Proceedings ofWCRE '93
25 "Reverse Engineering through Formal Transformation: Knuths 'Polynomial Addition'
Algorithm", Ward,-M.-P, The-Computer-Journal, v. 37 no9 '94 p. 795-813
26 "Reverse Engineering: Algorithms for Program Graph Production", Cimitile,-Aniello;
De-Carlini,-Ugo, Software:-Practice-and-Experience. v. 21 May '91 p. 519-37
27 "Software Measurement: A Necessary Scientific Basis", Fenton,-Norman, IEEE-
Transactions-on-Software-Engineering. v. 20 Mar. '94 p. 199-206
28 "Software Reengineering: A Quick History", R. Arnold, Communications of the
ACM, May 1994
29 "Software Reengineering: Context and Definitions", R. Arnold, Software
Reengineering, IEEE Computer Society Press, 1993. Pp. 25
30 "Software Reverse Engineering: A Case Study", Byme,-Eric-J, Software:-Practice-
and-Experience. v. 21 Dec. '91 p. 1349-64
31 "The Evolutionary Growth of Software Reengineering and the Decade Ahead", W.
Ulrich, American Programmer, Oct 1990, pp 14-20
32 "Using an Enabling Technology to Reengineer Legacy Systems", Markosian,-
Lawrence; Newcomb,-Philip; Brand,-Russell, Communications-of-the-ACM. v. 37
May '94 p. 58-70
"Using Data Abstraction to Guide the Restructuring of FORTRAN". R. Ellis, L. Liu,
Class handout - source unknown
34 "Using Informal and Formal Techniques for the Reverse Engineeing of C Programs",
G. Gannod, B. Cheng, IEEE Proceedings ofWCRE '96
35 "Using metrics to evaluate software system maintainability", Coleman,-Don; Ash,-
Dan; Lowther,-Bruce, Computer, v. 27 Aug. '94 p. 44-9
36 Untitled reverse engineering article, R. Waters, E. Chikofsky, Communications of the
ACM, May 1994
37 "A Reverse Engineering Methodology to Reconstruct Hierarchical Data Flow
Diagrams for Software Maintenance", P. Benedusi, A. Cimitile, U. De Carlini,
Proceedings of the IEEE Conference on Softwar Maintenance, Oct 1998, pp 180-189
38 A Method for Re-Engineering in Structured Programs", A. Hevner, R. Linger, 22 nd
Annual Hawaii International Conference on System Sciences, 1989, p. 1025-1034
39 "Object-Oriented Modeling and Design", J. Rumbaugh, M. Blaha, W. Premerlani, F.
Eddy, W. Lorensen, Prentice Hall, 1991.
40 "Re-3' Re-Engineering , Restructuring, Reverse Engineering Part 1", E. Yourdon,
American Programmer, Vol 2, No. 4, Apr 1989 p. 3-10, reprinted in R. Arnolds
"Software Reengineering" IEEE Computer Society Press, 1992.
41 "A road map guide to Software Reengineering Technology", R. Arnold, Software
Reengineering IEEE Computer Society Press, 1992.
42 "Software Engineering with Abstractions", Berzins and Luqi, Addison-Wesley
Publishing Company, 1991
43 EE163-GA-OMI-010/E106-TD1271B, Operation And Maintenance Instructions,
Organizational Level, Multiplexer TD-1271B/U, Change 2 dtd 07 June 1994,
44 FSCS-21 1 74, Command And Staff Manual For The UHF DAMA Subsystem, dtd 19
April 1985
45 FSCS-21 1-24-1 Revision A, UHF Demand Assigned Multiple Access (DAMA)Systems Interface Design Specification For The UHF Satcom Satellite Waveform, dtd
15 January 1985
46 FSCS-21 2- 16 Revision D, UHF DemandAssigned Multiple Access (DAMA) System TD-1271B/U Multiplexer Program
Performance Specification, dtd 01 September 1987
38
47 FSCS-2 12-17 Revision A, UHF Demand Assigned Multiple Access (DAMA) Systesm
TD-1271B/U Multiplexer Program Design Specification, dtd 01 September 1987
48 FSCS-212-26-2 (CH-1), Interface Control Document For The TD-1271B/U
Multiplexer (Distributed Control Mode), dtd 30 September 1990
49 FSCS-2 12-7 Revision A, UHF Demand Assigned Multiple Access (DAMA) Systesm
TD-1271B/U Multiplexer Program Performance Specification Data Buffer Processor,
dtd 1 5 May 83
50 FSCS-2 12-8 Revision A, UHF Demand Assigned Multiple Access (DAMA) Systesm
TD-1271B/U Multiplexer Program Design Specification Data Buffer Processor, dtd 01
September 1987
51 DOD-STD-1679A(Navy) Military Standard Software Development, dtd 22 October
1983
39
APPENDIX B
TD-1271B/U SUBROUTINE CALL TREE
Module Name Located in Is Called by Located in
O.X FPANEL FP
SRX STPV06
STXO STPV06
ACK_CC_RCCOW PRECLA EXAM_CCOW_OVRHED PRECLAADJUST_FCOUNT_GS GS DBP_MSG_INTRPRT DCEXEC
DBPMSGJNTRPRT PREALTEXAM_CCOW_OVRHED PRECLA
ALARM_ON_GS GS FPANEL FP
BEEP_ALARM_GS GSALPHA_ONOFF_A_GS GS FPANEL FP
GLIST_DISPLY_FP FP
RECALL_FP FP
DC_HOME_FREQ_FP FP
AC_HOME_FREQ_FP FP
QUEUE_TIME_FP FP
CMDJRJESPONSEJFP FP
FREQ_TO_DSPLY_FP FP
KG_TIME_TO_DSPLY FP
STATUS_RPT_B_FP FP
ZEROIZE_FP FP
CONFER_CALL_FP FP
INFOJREQUESTJFP FP
PAGING_REQ_FP FP
KG_MEM_CHANGE_FP FP
CONFIG_CODE_FP FP
DISP_INFO_REQ_GS GSLAMP_TEST_GS GSLNK_TST_RES_GS GSERR_GS GSSHOWJPORTJ3S GS
ALPHA ONOFF B GS GS FPANEL FP
INFO_REPORT_FP FP
R£CALL_FP FP
ZEROIZE_FP FP
PORT RELEASE FP FP
DC_HOME_FREQ_FP FP
AC_HOME_FREQ_FP FP
SELECT_PORT_FP FP
PREC ENTER FP FP
KG_MEM_FILL_FP FP
INFO_REQ_CHK_FP FP
EXIT_FP FP
LINK_TEST_REQ_FP FP
CALL_COMPLETE_FP FP
CHANCONTROLFP FP
OUT OF SERV FP FP
TO PARITY GALL FP FP
FORMAT_FREQ_FP FP
CONFER CALL FP FP
KG_TIME_FP FP
41
Module Name Located in Is Called by Located in
ALPHA ONOFF B GS GS CALL_CANCEL_FP FP
rNFO_REQUEST_FP FP
PAGING_REQ_FP FP
KG MEM CHANGE FP FP
STG_CONTROL_FP FP
CONFIG_CODE_FP FP
ALPHA ONOFF B GS GS LNK_TST_RES_GS GSCALL_CC_GS GSDISP_FCNT_GS GS
AUDIO ALARM 01 FP FPANEL FP
AUDIO ALARM 02 FP INFO_REQ_CHK_FP FP
AUDIO ALARM OFF FP FPANEL FP
KG_MEM_FILL_FP FP
BCD TO BIN GS GS INFO_REQUEST_FP FP
YZ_TO_BrN_FP FP
AC_HOME_FREQ_FP FP
VWXYZ_TO_BrN_FP FP
BCD TO YZ FP FP FPANEL FP
FREQ_TO_DSPLY_FP FP
DC_HOME_FREQ_FP FP
BEEP ALARM GS GS FPANEL FP
INFO_REPORT_FP FP
PORT_RELEASE_FP FP
DC_HOME_FREQ_FP FP
AC_HOME_FREQ_FP FP
SELECT PORT FP FP
PREC_ENTER_FP FP
KG_MEM_FILL_FP FP
CMD_RESPONSE_FP FP
PRE_DCKA_CHK_FP FP
CHAN_CONTROL_FP FP
LFNK_TEST_REQ_FP FP
ZEROIZE_FP FP
STATUS RPT B FP FP
CALL_COMPLETE_FP FP
OUT OF SERV FP FP
TO_PARITY_CALL_FP FP
FORMAT_PARITY_FP FP
CONFER_CALL_FP FP
KG_TIME_FP FP
CALL_CANCEL_FP FP
INFO_REQUEST_FP FP
PAGING_REQ_FP FP
EXTEND_XMIT_FP FP
KG_MEM_CHANGE_FP FP
STG CONTROL FP FP
CONFIG CODE FP FP
PORT DETECT GS GSLNK_TST_RES_GS GSERR GS GS
BfN TO BCD CL GS GS FPANEL FP
DC_HOME_FREQ_FP FP
AC_HOME_FREQ_FP FP
QUEUETIMEFP FP
DISCOTIME_DISPLAY FP
FREQ_TO_DSPLY_FP FP
KG_TIME_TO_DSPLY FP
42
Module Name Located in Is Called by Located in
BIN TO BCD GS GS FPANEL FP
RECALL FP FP
INFO_REQ_CHK_FP FP
FREQ_CODE_CHK_FP FP
GLIST DISPLY FP FP
LNK TST RES GS GSBIT_RATE_FIND DCMOW CALL_REQUEST DCMOWBITE CLEAR DCMOW RRUJNTRPRT DCMOW
CALLREQUEST DCMOWDATAXFER DCMOWGLIST_DISP DCMOWCALL_COMPLETE DCMOWINFO_REPORT DCMOWRRU_INTRPRT PREINTRRU_STATUS_RPTB PREINTDATA_XFER PREINTGLIST_DISPLAY_05 PREINTCALL_COMPLETE PREINTRRU_PRTY OUT_05 PREPWTINFO_REPORT_05 PREPWTCALL_REQ_05 PREPNTCONFIG_ENTRY_05 PREINTRRU_CALLCAN_05 PREFNTGLIST_ENTDEL_10 PREINTPAGING_RCOW PREINTCONF_REQUEST PREINT
BITRAT |DBPV4 RBIJ DBPV4RBIT DBPV4
BLINK_SCULITE_GS GS EXEC_DCEXEC DCEXECEXEC_PREALT PREALTCHECKSUM_CHK_GS GS
BRX STPV06 CONFIG STPV06
BSB STPV06 EXEC STPV06
PSA STPV06
BTX STPV06 CONFIG STPV06
CALC PARITY GS GS XFER_CCOW_TO_DBP DCEXECIN_CCOW_FROM_DBP DCEXECENCRYPT CCOW DCEXECDECRYPT_CCOW DCEXECXFER_RCOW_DBP_GS GSDECRYPT_RCOW_GS GSREAD DBP RCOW GS GSENCRYPT_RCOW_GS GSIN_CCOW_FROM_DBP PREALTENCRYPT_CCOW PREALTDECRYPT CCOW PREALTXFER_OW PREALT
CALL CC GS GS PORTDETECTGS GSCALL_COMPLETE_FP FP JUMP_COMPLETE_GS GS
CALL_QUE_UPDATE PREINT CALL_fN_QUE_ACK PREINT
CALL_IN_QUE PREINT
CALL_REQ_DCMOW FP CALL_REQUEST DCMOWr
TO_PARITY_CALL_FP FP
CC EXEC DCCNTR DCCNTR EXEC_DCEXEC DCEXECCC_EXEC_PRECLA PRECLA EXEC_PREALT PREALT
43
Module Name Located in Is Called by Located in
CCOW INTP DCMOW DCMOW EXEC_DCEXEC DCEXECUSEREXEC DCEXEC
CCOW INTP PREINT PREINT USEREXEC PREALTCHECK A RANGE DCMOW/PREINT PORT_DISCONNECT DCMOW
PORT_DISCONNECT PREINT
CHECK B RANGE PREINT PORT_DISCONNECT DCMOWPORTDISCONNECT PREINT
CHECK_C_RANGE DCMOW/PREINT PORTDISCONNECT DCMOWPORTDISCONNECT PREFNT
CHECKSUM_CHK_GS GS INITJDCEXEC DCEXECPNIT PREALT
CHK FRAME COUNT PRECLA FRAME_CHK_PRECLA PRECLACHK GLIST PREINT SLOT_DISCONNECT PREINT
CALL_WAITPNG PREINTHOME_CHAN_CHANG PREINTSLOT_CONNECT PREINTFORMAT_CHANGE PREINT
CLEAR DBPV4 PWRON DBPV4SETUP DBPV4
CLEAR CONT COUNT PREFNT BUSY_ACK PREINT
CALL_PN_OUE_ACK PREINTUSER_OUT_ACK PREINTCALLBACK PREINT
CLEAR_DISP_GS GS FPANEL FP
SHOW_PORT_GS GSCLEAR_GNUM PREINT RPT_GLIST1 PREINT
RPT_GLIST2 PREPWTRPT_GLIST3 PREINTRTP_GLIST4 PREINT
CLEARGUARDJJST DCMOW FRAME_FMT_UPDATE DCMOWCLEAR_LITES_TIME PREINT CALL_CANCEL PREPNTCLEAR_QUE_TIME PREINT SLOT_CON_UPDATE PREINT
RRU_CALLCAN_15 PREINTCLEAR_SLOTS_GS GS PORTDISCONNECT DCMOW
CHAN_CONTROL_FP FP
STATUS_PRECLA PRECLAZEROIZE PREINTPORT_DISCONNECT PREINT
CLR_RRU_05 PREALT RRU_MSG_UPDATE DCEXECCLR_RRU_PREC_DSP DCEXEC/PREALT RRU_MSG_UPDATE DCEXEC
RRU_MSG_UPDATE PREALTCLRTIM PREPNT BUSY_ACK PREINT
USER_OUT_ACK PREPNTSLOT_CON_UPDATE PREINT
CALL_CANCEL PREINTPARTY_OUT_OF_SYNC PREINT
44
Module Name Located in Is Called by Located in
CMD RESPONSE FP FP ZEROIZE FP FP
INFO_REPORT_FP FP
TO PARITY CALL FP FP
FORMATFREQFP FP
CONFER_CALL_FP FP
DC_HOME_FREQ_FP FP
AC_HOME_FREQ_FP FP
KG_TIME_FP FP
INFO_REQUEST_FP FP
GLIST_ENTER_FP FP
PAGING_REQ_FP FP
KG_MEM_CHANGE_FP FP
GLIST_DELETE_FP FP
STG_CONTROL_FP FP
CONFIG_CODE_FP FP
CHAN_CONTROL_FP FP
COMMAND_FRAME PREINT CCOW_INTP_DCMOW DCMOWCCOW INTP 05 PREINT
COMP_FRAME_GS GS FRAME_CHK_DCCNTR DCCNTRFRAME_CHK_PRECLA PRECLAMASTER_FRAME PREINT
CONFIG_CODE_GS GS INFOREQCHKFP FP
CONS STPV06 CONFIG STPV06CONT_CHK_PREINT PREINT RCOW_PREP_XMIT PREALT
CLEAR_CONT_COUNT PREINTREAD_CALL_ACK PREINT
CORRECT_ONE_BCD GS BCD_TO_BIN_GS GSCORRECT TWO BCD GS BIN_TO_BCD_GS GSCYCLELITES_DCMOW DCMOW ZEROIZE DCMOW
TS_PREP DCMOWINFO_REQUEST_GS GS
DBP_MSG_INT_30 DCEXEC/PREALT EXEC PREALT PREALTDBP_MSG_rNT_35 DCEXEC/PREALT EXEC_DCEXEC DCEXECDBP MSG PNTRPRT DCEXEC/PREALT USEREXEC DCEXEC
USERPREAC DCEXECUSERPREAC PREALTUSEREXEC PREALT
DCKPORTOFFGS |GS INFO_REQUEST_GS GSPORT_DETECT_GS GS
DECODEFP |FP FPANEL FP
KG_MEM_FILL_FP FP
DECRYPT_CCOW |DCEXEC/PREALT DBP_MSG_rNTRPRT DCEXECDBP_MSG_INTRPRT PREALT
DECRYPT RCOW GS GS DBP_MSG_INTRPRT DCEXECDBP_MSG_INTRPRT PREALT
DEL_FROM_GLIST |PREINT DELET GUARD LIST PREINTGLIST_ENTDEL_30 PREINT
DELAY TOGGLE GS GS STATUS_DCCNTR DCCNTRCC_EXEC_PRECLA PRECLARCVCCOWBLOCK PRECLASTATUS_PRECLA PRECLA
DID STPV06 RNGEXC STPV06LTEXEC STPV06
45
Module Name Located in Is Called by Located in
DISCO_SLOT_CHK DCMOW/PRErNT CHECK_A_RANGE DCMOWCHECK_B_RANGE DCMOWCHECK_C_RANGE DCMOWCHECK_A_RANGE PREINTCHECK_B_RANGE PREINTCHECK_C_RANGE PREINT
DISCOTIME DISPLY FP FPANEL FP
RECALL_FP FP
DISP FCNT GS GS ZEROIZE_FP FP
CHAN_CONTROL_FP FP
DC_HOME_FREQ_FP FP
AC_HOME_FREQ_FP FP
SELECTPORTFP FP
CALL_COMPLETE_FP FP
STATUS_RPT_B_FP FP
GLIST_DISPLY_FP FP
LINK_TEST_REQ_FP FP
rNFO_REPORT_FP FP
TO_PARITY_CALL_FP FP
FORMAT_FREQ_FP FP
CONFER_CALL_FP FP
KG_TIME_FP FP
CALL_CANCEL_FP FP
INFO_REQUEST_FP FP
GLIST_ENTER_FP FP
PAGING_REQ_FP FP
KG_MEM_CHANGE_FP FP
GLIST_DELETE_FP FP
STG CONTROL FP FP
CONFIG_CODE_FP FP
OUT_OF_SERV_FP FP
LNK_TST_RES_GS GSDISP_INFO_REQ_GS GS FPANEL FP
DISP VWXYZ GS GS FPANEL FP
RECALL FP FP
LNK_TST_RES_GS GSDISPLAY_EEEEE_GS GS GLIST_DISPLY_FP FP
ERRGS GSDISPLY_TO_BCD_GS GS FORMAT_FREQ_FP FP
AC_HOME_FREQ_FP FP
VWXYZ_TO_BIN_FP FP
YZ_TO_BrN_FP FP
WX_TO_BCD_FP FP
YZ_TO_BCD_FP FP
CONFIG_CODE_FP FP
ENCRYPT CCOW DCEXEC/PREALT EXEC_DCEXEC DCEXECEXEC_PREACT PREALT
ENCRYPT RCOW GS PREALT RCOW_PREP_XMIT DCEXECRCOW PREP XMIT PREALT
EQUIPLED_REDO FP FPANEL FP
46
Module Name Located in Is Called b\ Located in
ERR_GS GS ZEROIZE_FP FP
INFO_REPORT_FP FP
TO_PARITY_CALL_FP FP
FORMAT_FREQ_FP FP
CONFER CALL FP FP
KG TIME FP FP
INFO_REQUEST_FP FP
GLIST_ENTER_FP FP
PAGING_REQ_FP FP
EXTEND_XMIT_FP FP
GLIST DELETE FP FP
GLIST DISPLAY FP FP
EVEN_PORT_STORE PREINT RRU_STATUS_RPTB PREINTEXAM_CCOW_OVRHED PRECLA RCV_CCOW_BLOCK PRECLAEXIT FP FP TIMECHKDCCNTR DCCNTRFIND_GLIST PREINT ENTER_GUARD_LIST PREINT
DELET_GUARD_LIST PREINTFIND_GLIST_05 |PREINT GLIST_DISPLAY_05 PREINT
GLIST_ENTDEL_10 PREINTGLIST_ENTDEL_30 PREINT
FIND_PREMPT_ADR PREINT PREMPTCOUNT_REDO PREINTSLOT_CON_UPDATE PREINTRRU_DISCO PREINT
FIND_RRU_BUF_GS |GS SETUP1 DCMOWCALLREQUEST DCMOWLITES_OFF_DCMOW DCMOWDATA_XFER DCMOWLNK TST LAMP GS GSLNK TST RES GS GSRRU_ACPT_ON_GS GSINFO_REQUEST_GS GSRRU_DISCO PREINTR£AD_CALL_ACK PREINTCALL_IN_QUE_ACK PREINTUSER_OUT_ACK PREINTRRU_OUT_ADR PREINTSLOT_CON_UPDATE PREINT
CALL_CANCEL PREINTCALL_WAITING PREINT
CALL_IN_QUE PREINTCCOW_DATA_XFER PREINTPARTY_OUT_OF_SVC PREINT
LITES OFF PREINT PREINT
RRU_CALL_CAN_05 PREINTDATA_XFER PREINT
FIND RRU_QUE PREINT DEDICATEDSLOT PREINT
BUSY_ACK PREINT
CALL_WAITING PREINTFIND_RCOW_QUE PREINT
CALL_QUE_UPDATE PREINT
FIND_RRUQUE_ADR PREINT OUT_SVC_UPDATE PREINTCLEAR_QUE_TIME PREINT
47
Module Name Located in Is Called by Located in
FIXA GS GS FPANEL FP
CONFER_CALL_FP FP
QUEUE_TIME_FP FP
DISCOTIME_DISPLAY FP
KG_MEM_FILL_FP FP
FR£Q_TO_DSPLY_FP FP
PAGING_REQJFP FP
KG_MEM_CHANGE_FP FP
LINK_TEST_REQ_FP FP
FIXAB_GS GSFIXAB GS GS FPANEL FP
SHOW_YZ_GS GSSHOW_WX_GS GSFIXA_GS GS
FIXB_GS GS QUEUE_TIME_FP FP
DISCOTIME_DISPLAY FP
CMD_RESPONSE_FP FP
FREQ_TO_DSPLY_FP FP
DISPLY_TO_BCD_GS GSFMT_GLIST_RCW_05 PREINT SET_GLIST_PTR PREINTFMT_GLIST_RCW_15 PREINT SET_GLIST_PTR PREINTFMT_GLIST_RCW_40 PREINT SET GLIST PTR PREINTFMT_GLIST_RCW_55 PREINT CLEAR GNUM PREINTFORMATUPDATE PREINT FORMAT CHANGE PREINTFORMAT GLIST RCW PREINT RPTGLIST1 PREINTFP RCOW DCEXEC/PREALT USEREXEC DCEXEC
USERPREAC DCEXECUSERPREAC PREALTUSEREXEC PREALT
FPANEL FP FP USEREXEC DCEXECUSERPREAC DCEXECUSEREXEC PREALTUSERPREAC PREALT
FRAME_CHK_DCCNTR DCCNTR USEREXEC DCEXECUSERPREAC DCEXECDBP MSG INTRPRT DCEXEC
FRAME_CHK_PRECLA PRECLA USEREXEC PREALTUSERPREAC PREALTDBP_MSG_rNTRPRT PREALT
FRAME_FMT_UPDATE DCMOW MASTER_FRAME DCMOWFREEZE_DISPLAY FP FORMAT_FREQ_FP FP
DC_HOME_FREQ_FP FP
KG_TIME_FP FP
KG_MEM_CHANGE_FP FP
FREQ_CODE_CHK_5 FP KG_TIME_FP FP
FREQ_CODE_CHK_FP FP FORMAT _FREQ_FP FP
DC_HOM :_FREQ_FP FP
FREQ_TO_DSPLY_FP FP FORMAT_FREQ_FP FP
FSLOT STPV06 SRX STPV06
GET_RANDOM_NR_GS GS RCOW_PREP_XMIT PREALTCOMP_RRU_PREC PREINT
48
Module Name Located in Is Called by Located in
GETRCOWADRGS GS DATA_XFER DCMOWINFO_REQUEST DCMOWANY_MSG_IN_QUE DCMOWFRAMECHKPRECLA PRECLARRU_STATUS_RPTB PREINTDATA_XFER PREINTCALL_COMPLETE PREFNTRRU_PRTY_OUT_05 PREINTINFO REPORT 05 PREINTRRU_CALLCAN_05 PREINTRRU_CALL_CAN_15 PREINTPAGING_05 PREINTFIND_RRU_QUE PREINTANY_MSG_IN_QUE PREINTCONFIRLISTRTP PREINTDEDICATEDSLOT PREINTCLRTIM PREINTCALL_REQ_05 PREINTCONF_REQ_05 PREINT
GET_RRU_INADR_GS GS RRUJNTRPRT DCMOWCALL_REQUEST DCMOWDATA-XFER DCMOWGLISTDISP DCMOWCALLCOMPLETE DCMOWINFO_REQUEST DCMOWRRU_INTRPRT PREINTCONF_REQUEST PREINTCALL_REQUEST PREINTRRU_STATUS_RPTB PREINTDATA_XFER PREINTGLISTJMSPLAY PREINTCALLCOMPLETE PREINTRRU_PRTY_OUT_05 PREINTINFO_REPORT PREINTRRU_CALL_CANCEL PREINTGLIST_ENTR_DEL PREINTGLIST_ENTDEL_05 PREINTPAGING_RCOW PREINTCONFIG_ENTRY PREINT
GET_TIME_CODE FP OUT_OF_SERV_FP FP
CONFER_CALL_FP FP
GLIST_COMPARE |PREINT GLIST_DISP_05 PREINTCHKGLIST PREINT
GLISTCOUNTER |PREINT ENTERGUARDLIST PREINTGLIST_ENTDEL_10 PREINTGLIST_ENTDEL_30 PREINTDELET_GUARD_LIST PREINT
HI_GUARD_CHK_FP |FP ZEROIZEFP FP
INFO_REPORT_FP FP
TO_PARITY_CALL_FP FP
CONFER_CALL_FP FP
INFO_REQUEST_FP FP
GLIST_ENTER_FP FP
PAGING_REQ_FP FP
IN CCOW FROM DBP DCEXEC DBPMSGJNTRPRT DCEXECDBP_MSG_INTRPRT PREALT
49
Module Name Located in Is Called by Located in
INFO REPORT FP FP CALL_CC_GS GS
INFO_REQ_05_GS GS HOME_CHAN_05 PREINT
rNFO_REQ_CHK_45 FP SELECT_PORT_FP FP
INFO_REQ_CHK_50 FP PORT_RELEASE_FP FP
INFO_REQ_CHK_FP FP FPANEL FP
INIT PREALT/DBPV4 (LABEL) PWRON DBPV4TDMA DBPV4
FNITIAL ENTRY PREINT RRU_STATUS_RPTB PREINTDATA XFER PREINTCALL_COMPLETE PREINTRRU_PRTY_OUT_05 PREINTINFO_RPT_05 PREINT
RRU_CALL_CAN_15 PREINTPAGING_05 PREINTSTATUS_RPT_A PREINTLINK_RESULT PREINTFORMAT GLIST RCW PREINTCALL_REQ_05 PREINTCONF_REQ_05 PREINT
IOILF DBPV4 IOIA DBPV4IOILS DBPV4 IOIA DBPV4I02LF DBPV4 I02A DBPV4I02LS DBPV4 I02A DBPV4I03LF DBPV4 I03A DBPV4I03LS DBPV4 I03A DBPV4I04LF DBPV4 I04A DBPV4I04LS DBPV4 I04A DBPV4JUMP COMPLETE GS GS DCKPORTOFF_GS GSJUMP SELECT 1 GS GS DCKPORTOFF_GS GS
SHOW PORT GS GSCALL_CC_GS GS
JUMP SELECT 2 GS GS DCKPORTOFFGS GSSHOW PORT GS GSCALL_CC_GS GS
KB TIME INIT GS GS ZEROIZEFP FP
OUT OF SERV FP FP
STATUS_RPT_B_FP FP
GLIST DISPLY FP FP
LINK_TEST_REQ_FP FP
INFO_REQUEST_FP FP
TO PARITY CALL FP FP
CONFER CALL FP FP
CALL_CANCEL_FP FP
rNFO_REQUEST_FP FP
GLIST ENTER FP FP
PAGING_REQ_FP FP
CONFIG CODE FP FP
CALL_COMPLETE_FP FP
KG INITIAL GS GS EXEC_DCEXEC DCEXECEXEC PREALT PREALTENCRYPT_CCOW PREALT
50
Module Name Located in Is Called by Located in
KG_INITIAL_GS_05 GS ENCRYPT_CCOW DCEXECDECRYPT CCOW DCEXECDECRYPT_RCOW_GS GSENCRYPT_RCOW_GS GSENCRYPT_CCOW PREALTDECRYPT_CCOW PREALT
KG_LOAD_GS GS USERPREAC DCEXECENCRYPT_CCOW DCEXECUSERPREAC PREALT
KG_MEM_CHANGE_GS GS EXEC_DCEXEC DCEXECTS_PREP_DCEXEC DCEXECEXEC_PREALT PREALTTS_PREP_PREALT PREALTKG_LOAD_GS GS
KG_MEM_FILL_20 FP KG_MEM_FILL_FP FP
KG_MEM_FILL_FP FP FPANEL FP
KG MEM TEST GS GS EXAMJXOWOVRHED PRECLAKG_MEM_CHANGE_GS GS
KG READY GS GS EXAM_CCOW_OVRHED PRECLAKG_RESET_GS GSKG_INITIAL_GS GS
KG_RESET_GS GS EXEC_DCEXEC DCEXECTS_PREP_DCEXEC DCEXECENCRYPT_CCOW DCEXECDECRYPT CCOW DCEXECDECRYPT_RCOW_GS GSENCRYPT_RCOW_GS GSKG_MEM_CHANGE_GS GSEXEC_PREALT PREALTTS_PREP_PREALT PREALTENCRYPT_CCOW PREALTDECRYPT_CCOW PREALT
KG TIME 75 FP KG_TIME_FP FP
KG TIME TO DSPLY FP KG_TIME_FP FP
KG ZEROIZE GS GS STATUS_DCCNTR DCCNTRSTATUS_PRECLA PRECLA
LD1 DBPV4 IOIA DBPV4LD2 DBPV4 I02A DBPV4LD3 DBPV4 I03A DBPV4LD4 DBPV4 I04A DBPV4LITES OFF DCMOW DCMOW STATUS_DCCNTR DCCNTR
ZEROIZE DCMOWFRAME_FMT_UPDATE DCMOWCHAN_CONTROL_FP FP
LITES OFF GS GS RECALL_FP FP
INFO_REQUEST_FP FP
PORT RELEASE FP FP
INFO_REQ_CHK_FP FP
CALL_COMPLETE_FP FP
LINK_TEST REQ FP FP
ZEROIZE_FP FP
STATUS_RPT_B_FP FP
GLIST_DISPLY_FP FP
CHAN_CONTROL^FP FP
OUT_OF_SERV_FP FP
51
Module Name Located in Is Called by Located in
LITES OFF PREINT PREfNT STATUS_PRECLA PRECLAFORMAT_UPDATE PREINTNUFMT_TO_STP PREINT
LNK TST LAMP GS GS TO_PARITY_CALL_FP FP
FORMAT_FREQ_FP FP
PORT_RELEASE_FP FP
DC_HOME_FREQ_FP FP
AC_HOME_FREQ_FP FP
QUEUE_TIME_FP FP
SELECT_PORT_FP FP
CONFER_CALL_FP FP
KG_TIME_FP FP
CALL_CANCEL_FP FP
INFO_REQUEST_FP FP
GLIST_ENTER_FP FP
PAGING_REQ_FP FP
EXTEND_XMIT_FP FP
KG_MEM_CHANGE_FP FP
GLIST_DELETE_FP FP
STG_CONTROL_FP FP
CONFIG_CODE_FP FP
LAMP_TEST_GS GSLO GUARD CHK FP FP GLIST_ENTER_FP FP
LOAD_KG_VARS_GS GS ENCYRPT CCOW DCEXECDECRYPT CCOW DCEXECDECRYPT_RCOW_GS GSENCRYPT RCOW GS GSENCRYPT_CCOW PREALTDECRYPT_CCOW PREALT
LTRXEX STPV06 EXEC STPV06
MASTER FRA 05 PREPNT MASTER_FRAME PREFNT
MASTER FRA 10 PREINT MASTER FRAME PREINTMASTER_FRAME DCMOW/PREINT/DCCNTR CCOW_INTP_DCMOW DCMOW
CCOWJNTPJPREINT PREINTMOVE_FRAME_GS GS MASTER_FR<\ME DCCNTR
FRAME_CHK_DCCNTR DCCNTRMOVE_GS GS SPECIAL_CCOW DCCNTR
RCOWJNTPDCCNTR DCCNTRINITDCEXEC DCEXECMOVE TMP TO VARS DCEXECMOVE_VARS_TO_TMP DCEXECSTP_MSG_INTRPRT DCEXECINIT PREALTMOVE VARS TO TMP PREALTMOVE_TMP_TO_VARS PREALTSTP_MSG_INTRPRT PREALTRCOW_INTP_PRECLA PRECLA
MOVE_TMP_TO_VARS DCEXEC/PREALT USERPREAC PREALTUSERPREAC DCEXEC
MOVE_VARS_TO_TMP DCEXEC/PREALT USERPREAC DCEXECUSERPREAC PREALT
NETNUMXCHNG DCEXEC DECRYPT CCOW DCEXECNUFMT_TO_STP PREINT MASTER_FRAME PREINT
FORMAT_CHANGE PREINTODD_PORT_STOR£ PREINT RRU_STATUS_RPTB PREPNT
52
Module Name Located in Is Called by Located in
OFFSET_BY_3_GS GS CC_EXEC_DCCNTR DCCNTRCOMMAND FRAME DCMOW
OFFSET_BY_6_GS GS CC_EXEC_DCCNTR DCCNTRCOMMAND FRAME DCMOW
OUT_SVC_UPDATE PREINT USER_OUT_ACK PREINTPART OUT OF SVC PPvEFNT
PLACE_CALL_PRTY PREINT CONF_REQ_05 PREINTPLACEPORT PREINT CONFER_LIST_RPT PREINT
STATUS RPT B PREINTPOINT_TO_GLISTl PREINT SET_GLIST_PTR PREINTPOINT_TO_GLIST2 PREINT SET GLIST PTR PREINTPOINT_TO_GLIST3 PREINT SET_GLIST_PTR PREINTPOINT_TO_GNUM PREINT POINT_TO_GLISTl PREINT
POINT_TO_GLIST2 PREINTPOINT_TO_GLIST3 PREINT
PORTDETECTGS GS DBP_MSG_INTRPRT DCEXECPORTDISCOJJPDATE PREINT RRU UPDATE PREINT
ZEROIZE PREINTPORT_DISCONNECT DCMOW FRAMEJFMTJUPDATE DCMOW
FORMAT_UPDATE PREINTNUFMT_TO_STP PREINT
PORT RELEASE 15 FP FPANEL FP
PORT RELEASE FP FP DCKPORTOFFGS GSSHOW_PORT_GS GSCALL_CC_GS GS
PORTCCADR_05 PREINT CONFIG_ENTRY_05 PREINTPORTCCADRPREINT PREINT CONFIG_CODE_FP FP
SLOT_CON_UPDATE PREINTRRU_STATUS_RPTB PREINTCALL_REQ_05 PREINTCONF_REQ_05 PREINTCONFIG_ENTRY_05 PREINT
PRE_DCKA_CHK_FP FP TO_PARTY_CALL_FP FP
PREC CONVERT FP FP FPANEL FP
TO_PARITY_CALL_FP FP
PREC_ENTER_25 FP FORMAT_FREQ_FP FP
PREC_ENTER_30 FP GLIST_DISPLY_FP FP
PREC_ENTER_FP FP OUT_OF_SERV_FP FP
TO_PARITY_CALL_FP FP
CONFER_CALL_FP FP
PREC_TO_RCOW_GS GS DATA_XFER DCMOWDATAXFER PREINTRRU_PRTY_OUT PREINTCALL_REQ_05 PREINTCONF_REQ_05 PREINT
PREEMPT LITE PRINT RRU_DISCO PREINT
PREEMPT UPDATE PRECLA TIME CHK PRECLA PRECLAPREMPTCOUNT 05 PREINT PREMPTCOUNT_REDO PREINT
PREMPTCOUNT_REDO PRErNT SLOT_CON_UPDATE PREINTSLOT_DISCONNECT PREINTCALL_COMPLETE PREINT
PRSN STPV06 SRX STPV06
PRTCNFIGCHNG PREINT RRU_STATUS_RPTB PREINT
PSA STPV06 EXEC STPV06CONFIG STPV06
PTSN STPV06 STX STPV06
53
Module Name Located in Is Called by Located in
PVR STPV06 SRX STPV06
BRX STPV06
PVRA STPV06 SRX STPV06
PVT STPV06 STX STPV06
BTX STPV06
RAMT DBPV4/STPV06 COLDS STPV06
RCCOW PORTADR GS GS DATA_XFER DCMOWINFO_REPORT DCMOWRRRU_STATUS_RPTB PREFNTDATA_XFER PREINTCALLCOMPLETE PREINTRRU_PRTY_OUT_05 PREINTINFO_RPT_05 PREINTRRU_CALLCAN_15 PREINT
PAGING_05 PREINTSTATUS_RPT_A PREINTLINK_RESULT PREINTCALL_REQ_05 PREINT
CONF_R£Q_05 PREINT
RCOW ASSIGN FMT PREINT CALL_ACK_05 PREINT
RCOW ASSIGN 05 PREFNT
RCOW INTP DCCNTR DCCNTR USEREXEC DCEXECRCOW_INTP_PRECLA PRECLA USEREXEC PREALTRCOW OUT PREINT PRINT USEREXEC PREALTRCOW PREP XMIT DCEXEC/PREALT USEREXEC DCEXEC
USEREXEC PREALTRCOW XMIT DCMOW DCMOW USEREXEC DCEXECRCV CCOW BLOCK PRECLA CC_EXEC_PRECLA PRECLAREAD ACIA GS TEST_ACIA GSREAD_CALL_ACK PREINT MASTER_FRAME PREINT
COMMAND_FRAME PREINT
|READ_DBP_RCOW_GS GS DBP MSG PNTRPRT DCEXECDBPMSGJNTRPRT PREALT
REDO DBP PORT GS GS DISCO_SLOT_CHK DCMOWCALL_REQUEST DCMOWCALL COMPLETE DCMOWINIT PREALTRRU_TURNOFF PRECLASLOTCONJJPDATE PREINTPORT_DISCONNECT PREINTCLEAR_SLOTS_GS GS
REDO_RRUl_GS GS REDO_RRUS_DCMOW DCMOWREDO_RRUS_PREINT PREINT
WRITE_ACIA GSREDO_RRU2_GS GS REDO_RRUS_DCMOW DCMOW
REDO RRUS PREINT PREINT
WRITE ACIA GSREDO RRU3 GS GS REDO_RRUS_DCMOW DCMOW
REDO_RRUS_PREINT PREINT
WRITE ACIA GSREi)0_RRU4_GS GS REDO RRUS DCMOW DCMOW
REDORRUSPREINT PREINT
WRITE_ACIA GS
|REDO_RRUS_DCMOW DCMOW USEREXEC DCEXEC
CCOW_INTP_DCMOW DCMOW
54
Module Name Located in Is Called by Located in
REDO_RRUS_PREINT PREINT USEREXEC PREALTCCOWINTPPREINT PREINT
REINITDELAY DCMOW MASTER_FRAME DCMOWRESET_ACIAS_GS GS [NTT DCEXEC DCEXEC
INIT PREALT|RESET_BLACK_GS GS ENCRYPT_CCOW DCEXEC
DECRYPTCCOW DCEXECDECRYPT_RCOW_GS GSENCRYPT_RCOW_GS GSKG_INITIAL_GS GSDECRYPTCCOW PREALTENCRYPTCCOW PREALT
RESET_RRU_PTR_GS GS RRU INTRPRT DCMOWCALL_REQUEST DCMOWDATA_XFER DCMOWGLIST DISP DCMOWCALL_COMPLETE DCMOWrNFO_R£PORT DCMOWRRU_INTRPRT PREINTRRU_STATUS_RPTB PREINTDATA_XFER PRErNTGLIST_DISPLAY PREINTGLIST_DISPLAY_05 PREINTCALL_COMPLETE PREINTRRU_PRTY_OUT PREINTINFO_REPORT PREINTINFO_REPORT_05 PREINT
CALLJREQUEST PREINT
CALL_REQ_05 PREINT
CONFJREQUEST PREINTRRU_CALL_CANCEL PREINTRRU_CALLCAN_05 PRErNTGLIST_ENTR_DEL PREPWTGLIST_ENTDEL_05 PREINT
GLISTJENTDELJO PREINTPAGING_RCOW PREINTPAGING_05 PREINTCONF_REQ_05 PREINTCONFIG_ENTRY PREINT
RGRXEX STPV06 EXEC STPV06
ROMTST DBPV4 PWRON DBPV4RPT B OUT PREINT PREINT FP RCOW PREALT
STATUSRPTB PRErNT
RQST_CODE_GS GS FNFO_R£PORT DCMOWFPANEL FP
INFO_REPORT_FP FP
INFO_REQUEST_GS GSINFO_RPT_05 PREINT
55
Module Name Located in Is Called by Located in
RRU ACPT ON GS GS DATA_XFER DCMOWCALL_R£QUEST DCMOWCALL_COMPLETE DCMOWrNFO REPORT DCMOWRRU_STATUS_RPTB PREINTDATAXFER PREFNT
CALL COMPLETE PREINTRRU PRTY OUT 05 PREINTINFO_RPT_05 PREINTRRU CALLCAN 15 PREINTPAGING05 PREFNTCALL_R£Q_05 PREFNTCONF_REQ_05 PREINT
RRU B2 LOOP CHK DCEXEC/PREALT RCOW_PREP_XMIT DCEXECRCOW_PREP_XMIT PREALT
RRU CLEAR BIT GS GS STP_MSG_rNTRPRT DCEXECCLR_RRU_PREC_DSP DCEXECFPANEL FP
CLR_RRU_PREC_DSP PREALTSTP MSG INTRPRT PREALTMASTER_FRAME PRErNT
|RRU_DISCO PREINT CHK USER NR1 PREINTCHK_USER_NR2 PREINT
RRU INTRPRT DCMOW/PREINT RRU_MSG_IN_DCMOW DCMOWRRUMSGINJPREFNT PREINT
RRU MSG IN DCMOW DCMOW USERPREAC DCEXECRRU MSG UPDATE PREALT USEREXEC DCEXEC
USERPREAC DCEXECUSEREXEC PREALTUSERPREAC PREALT
RRU OUT ADR PREINT BUSY_ACK PREINTCALL_ACK PREINT
RRU SET BIT GS GS STP_MSG_INTRPRT DCEXECRRU_MSG_UPDATE DCEXECFPANEL FP
STP MSG INTRPRT PREALTRRU_MSG_UPDATE PREALTMASTERFRAME PREFNT
RRU_TURNOFF PRECLA TIME_CHK_PRECLA PRECLARRU XMIT SET GS GS USEREXEC DCEXEC
USERPREAC DCEXECUSEREXEC PREALTUSERPREAC PREALT
RRUMSG FN PREINT PREINT USEREXEC PREALTUSERPREAC PREALT
RRUOUTAD2 PREINT PREPWT FRAME_CHK_PR£CLA PRECLABUSY ACK PREINT
CALL-ACK 05 PREFNTCALLACK PREINT
SAVE STP11 GS GS DISCO_SLOT_CHK DCMOWFNIT PREALTRRU TURNOFF PRECLASLOT CON UPDATE PREINTPORT_DISCONNECT PREFNT
56
Module Name Located in Is Called by Located in
SAVE_STP12_GS GS SWITCH REDO DCEXECAC_HOME_FREQ_FP FP
EXEC_PREALT PREALTUSEREXEC PREALTEXAMJXOWOVRHED PRECLAHOME CHAN 05 PREINT
SAVE_STP13_GS GS TIME_CHK_DCCCNTR DCCNTREXEC_DCEXEC DCEXECUSEREXEC DCEXECSTP_MSG_INTRPRT DCEXECMASTER_FRAME DCMOWSETUP PREALTUSERPREAC PREALTSTP_MSG_INTRPRT PREALTEXAM_CCOW_OVRHED PRECLASTATUS_PRECLA PRECLACC_EXEC_PRECLA PRECLA
SAVE_STP18_GS GS TIME_CHK_DCCCNTR DCCNTRSTATUS DCCNTR DCCNTRUSEREXEC DCEXECUSERPREAC DCEXECSTP_MSG_INTRPRT DCEXECMASTER FRAME DCMOWRCOW_XMIT_DCMOW DCMOWUSEREXEC PREALTSTP_MSG_INTRPRT PREALTEXAM_CCOW_OVRHED PRECLATIME_CHK_PRECLA PRECLASTATUSPRECLA PRECLARCOW_OUT_PREINT PREINTMASTER FRAME PREFNTLINK_TEST_ASIGN PREINT
SAVE_SW3_GS GS SETUP_MISC DCEXECAC_HOME_FREQ_FP FP
INIT PREALTSETUP PREALTEXAMJXOWOVRHED PRECLAHOME_CHAN 05 PREINT
SCCNV STPV06 EXEC STPV06
SEL PORT DISCO PREINT SLOTDISCONNECT PRErNTRRU_DISCO PREINTSLOT_CON_UPDATE PREINTCALL_COMPLETE PREINT
SELECT PORT FP GP JUMP_SELECT_1 GS GSJUMP_SELECT_2_GS GS
SEND CCOW BLOCK PRECLA CC_EXEC_PRECLA PRECLASEND RCOW TO SAC PRECLA CCEXECPRECLA PRECLASEQUENCEJLITES DCCNTR FRAME_CHK_DCCNTR DCCNTRSET_DBPSTAT_MSG DCCNTR/PRECLA STATUS_DCCNTR DCCNTR
STATUS_PRECLA PRECLASET_GLIST_FLAG PREINT GLIST_ENTDEL_10 PREINT
GLIST_ENTDEL_30 PREINT
SET_GLIST_PNTR PREINT RPTGLIST1 PREINTRPT_GLIST2 PREINTRPTGLIST3 PREINTRPTGLIST4 PREINT
57
Module Name Located in Is Called by Located in
SET MSG CODE PREINT RPT_GLIST1 PREINTRPT_GLIST2 PREINTRPTGLIST3 PREINTRPT_GLIST4 PREINT
SET PORT CC DCCNTR/PRECLA STATUS_DCCNTR DCCNTRSTATUS_PRECLA PRECLA
SET PREMPT FLAG PREINT RRU_DISCO PREINTSLOT_CON_UPDATE PREINT
SET SC FLAG PREINT SET_XMIT_FLAG PREINTSET TIME CODE PREINT RRU_DISCO PREINT
SLOT_CON_UPDATE PREINTSETUP DBPV4/STPV06 INIT PREALTSETUP_MISC DCEXEC/PREALT INITJDCEXEC DCEXECSETUP
1
DBPV4/DCMOW PWRON DBPV4TDMA DBPV4
SHIFT EVEN PORT PREINT STATUS RPT A PREINTSHIFT ODD PORT PREINT STATUS RPT A PREINTSHIFTLEFT GS LOAD_KG_VARS_GS GSSHIFTRIGHT GS LOAD_KG_VARS GS GSSHOW_PORT_GS GS PORT_DETECT_GS GSSHOW_WX_GS GS KG_TIME_TO_DSPLY FP
DISP_VWXYZ_GS GSSHOWYZGS GS BCD_TO_YZ_FP FP
AC_HOME_FREQ_FP FP
KG_TIME_TO_DSPLY FP
DISP_VWXYZ_GS GSDISP_INFO REQ GS GS
SHOWOUT_YZ_GS GS FPANEL FP
CONFIG CODE FP FP
SLOT_CON_UPDATE PREINT SLOT_CONNECT PREINTSOFA DBPV4 SOF DBPV4SOFAA DBPV4 RBIT DBPV4SRX STPV06 CONS STPV06
SST STPV06 RCW1 STPV06RR2 STPV06
STATUS_DCCNTR DCCNTR EXEC_DCEXEC DCEXECSTATUSPRECLA PRECLA EXEC_PREALT PREALTSTC STPV06 CONFIG_CODE_FP STPV06
STC4 STPV06 STC STPV06
STG_LITE_UPDATE FP STG_CONTROL FP FP
STPMSGJNTRPRT DCEXEC/PREALT USEREXEC DCEXECUSERPREAC DCEXECUSEREXEC PREALTUSERPREAC PREALT
STRAP_05 GS STRAP_READ_GS GSSTRAP READ GS GS INIT_DCEXEC DCEXEC
SETUP_MISC DCEXECINIT PREALT
STUFF DBPV4 TDMA DBPV4STX STPV06 CONS STPV06
SUB_KG_TIME_GS GS PORT_DETECT_GS GSSWAPLITES_DCEXEC DCEXEC EXEC_DCEXEC DCEXEC
USEREXEC DCEXECSTP_MSG_INTRPRT DCEXECMASTER_FRAME DCMOWCHAN_CONTROL_FP FP
58
Module Name Located in Is Called by Located in
SWITCH REDO DCEXEC EXEC DCEXEC DCEXECSWITCHIT_GS GS EXEC_DCEXEC DCEXEC
SWITCH REDO DCEXECEXEC_PREALT PREALT
TEST ACIA GS INTERUPT GS GSTIME CHK DCCNTR DCCNTR USEREXEC DCEXEC
USERPREAC DCEXECTIME CHK PRECLA PRECLA USEREXEC PREALT
USERPREAC PREALT(TIME_DELAY |DCMOW/PREINT INFO_REPORT DCMOW
RRU STATUS RPTB PREINTPAGING_05 PREINTINFO RPT 05 PREINTCALL_COMPLETE PREINT
TIME FMT PRELNT RRU_DISCO PREINTSLOT CON UPDATE PREINTCALL QUEJJPDATE PREINTPORTDISCOJJPDATE PREINT
TS PREP DCEXEC DCEXEC FRAME CHK DCCNTR DCCNTRUSERPREAC DCEXEC
TS_PREP_PREALT | PREALT USERPREAC PREALTFRAME_CHK_PRECLA PRECLA
TST_XMITD_QUE PREINT BUSY_ACK PREINTREAD_CALL_ACK PREINT
|UNPACK_GS |GS FPANEL FP
INFO_REQ_CHK_FP FP
FREQ_TO_DSPLY_FP FP
CONFIG_CODE_FP FP
SHOW_YZ_GS GSSHOW WX GS GS
USER1 SETUP GS GS ZEROIZE DCMOWINFO_REQUEST_GS GSSLOT_DISCONNECT PREINTPARTY OUT OF SVC PREINTUSER1_SETUP_GS PREINTZEROIZE PREINTCCOW DATA XFER PREINTCALL_IN_QUE PREINTCALL_WAITING PREINTDELET_GUARD_LIST PREINTENTER_GUARD_LIST PREINTHOME_CHAN_CHANG PREINTCALLCANCEL PREINTFORMAT CHANGE PREINTSLOT_CONNECT PREINTLINK_TEST_ASIGN PREINT
59
Module Name Located in Is Called by Located in
USER2 SETUP PREPNT ZEROIZE DCMOWSLOT DISCONNECT PREINTSLOT_CONNECT PREFNTFORMAT_CHANGE PREPNTCALL_CANCEL PREFNTHOME_CHAN_CHANG PREINTENTER_GUARD_LIST PREFNTDELET_GUARD_LIST PREFNTCALL_IN_QUE PREINTZEROIZE PREINTPARTY_OUT_OF_SVC PREINT
|USER3_SETUP PREINT CALL_CANCEL PREINTHOME_CHAN_CHANG PREINTENTER_GUARD_LIST PREINTDELET_GUARD_LIST PREINT
USEREXEC DCEXEC/PREALT EXEC_DCEXEC DCEXECEXEC_PREALT PREALT
USERPREAC DCEXEC/PREALT EXEC_DCEXEC DCEXECEXEC_PREALT PREALT
VWXYZ_TO_BIN_FP |FP ZEROIZE_FP FP
GLIST_DELETE_FP FP
PAGrNG_REQ_FP FP
GLIST_ENTER_FP FP
INFO_REPORT_FP FP
TO_PARITY_CALL_FP FP
CONFER_CALL_FP FP
WRITE_ACIA GS TEST_ACIA GSWX_TO_BCD_FP FP KG_TIME_FP FP
INFOJREQUESTJFP FP
XFER CCOW TO DBP DCEXEC EXEC_DCEXEC DCEXECXFER_OW PREALT EXEC_PREALT PREALTXFER_RCOW_DBP_GS GS EXEC_DCEXEC DCEXEC
RCOW_PREP_XMIT DCEXECRCOW_PREP_XMIT PREALT
XPLUSA_GS GS FRAME CHK DCCNTR DCCNTRCALL_REQUEST DCCNTRSEQUENCE_LITES DCCNTRRCOW PNTP DCCNTR DCCNTRRRU_B2_LOOP_CHK DCEXECSWAPLITES_DCEXEC DCEXECCALLREQUEST DCMOWINFO_REQ_CHK_FP FP
rNiT PREALTRRU B2 LOOP CHK PREALTRCOW_INTP_PRECLA PRECLAFORMAT GLIST RCW PREINTMASTER_FRAME PREINTRRU_DISCO PREINTCHK_GLIST PREINT
XPLUSB_GS GSRRU_CLEAR_BIT_GS GSRRU_SET_BIT_GS GS
60
Module Name Located in Is Called by Located in
XPLUSBGS GS FORMAT FREQ_FP FP
DC_HOME_FREQ_FP FP
FREQ_TO_DSPLY_FP FP
CALL COMPLETE DCMOWCALL_REQUEST DCMOWBIT RATE FIND DCMOW
YZ TO BCD FP FP OUT_OF_SERV_FP FP
DC_HOME_FREQ_FP FP
KG_TIME_FP FP
INFO_REQUEST_FP FP
YZ TO BIN FP FP CONFER_CALL_FP FP
ZERO_SLOTS_GS GS STATUS_DCCNTR DCCNTRZEROIZE DCMOW
61
Module Name Located in Is Called by Located in
ZEROFILL GS GS SPECIAL_CCOW DCCNTRTIME_CHK_DCCNTR DCCNTRSTATUS_DCCNTR DCCNTREXEC_DCEXEC DCEXECSTP_MSG_rNTRPRT DCEXECRCOW_XMIT_DCMOW DCMOWCHAN_CONTROL_FP FP
EXEC_PREALT PREALTSTP_MSG_INTRPRT PREALTTIME_CHK_PRECLA PRECLASTATUSPRECLA PRECLAMASTER FRAME PREINT
CONF_REQ_05 PREINT
REDO RRU1 GS GSCLEAR_SLOTS_GS GS
62
APPENDIX C
A. PARSER.ADA
with text_io; use text_io;procedure parser is
package int_io is new integer_io (integer)
;
use int_io;
subtype label_range is integer range 1..-6;
subtype opcode_range is integer range 8.. 13;subtype operand_range is integer range 15.. 20;
subtype str6 is string (1 .. 6)
;
subtype strl20 is string (1 .. 120)
;
type call_node;type call_node_jptr is access call_node;
type call_node is recordcaller : integer;next : call_node_ptr
;
end record;
type label_node;type label_node_ptr is access label_node;
type label_node is recordlabelcalled_bylinenext
end record;
str6 ;
call_node_ptr
;
integer;label_node_ptr;
label_listnew_labelsearchlabelopcodeoperandcol_nbrnew_callerinput_f ileoutput_f ile
label_node_ptr := nulllabel_node_ptr
;
label_node_ptr;str6
;
str6str6natural
;
call_node_ptr ;
file_type;file type;
procedure establish_label_list is
lineline_nbrcountdebugfound
beginwhile not end_of_f ile (input_f ile) loop
strl20;integer : = ;
natural
;
boolean := false;boolean;
63
get_line (input_f ile, line, count)
;
line_nbr := line_nbr + 1;
put (output_f ile, line_nbr, 4)
;
put_line (output_f ile, " " & line (1 .. count) )
;
-- CHECK IF THE LINE HAS A LABELif count > then
if line(l) >= 'A' and lined) <= 'Z' thenif count >= 7 then
label := line (label_range)
;
if debug then put_line ( "LABEL IS & label) ; end if;
-- CHECK AND SEE IF THE LABEL EXISTSsearch := label_list;found := false;while search /= null loop
if search. label = label thenfound : = true
;
end i f
;
search := search. next;end loop;if debug then put_line ( "SEARCHED FOR LABEL - " &
boolean ' image (found) ) ; end if;
if not found then-- ENTER THE LABEL INTO THE END OF THE LINKED LIST
= new label_node;= label;= null;= line nbr;
new_labelnew_label . labelnew_label . nextnew_label . linesearch := label_list;if search = null then
-- FIRST ITEM IN THE LISTlabel_list := new_label;
elsewhile search. next /= nul'l loop
search := search, next ,-
end loop;search. next := new_label;
end if;
end i f ,-
end if; -- count > 7
end if; -- 'A' or '
Z'
end if; -- count >
end loop;end establish label list;
procedure parse_control is
linecountline_countdebugfoundcaller
strl2 0;
natural
;
integerbooleanboolean;call_node_ptr
;
= 0;
= false;
function control_opcode (opcodedebug : boolean := false;
beginif debug then put (opcode) ; end if;
str6) return boolean is
64
if opcode = "BCCopcode = "BCSopcode = "BEQopcode = "BGEopcode = "BGTopcode = "BHIopcode = "BLEopcode = "BLSopcode = "BLTopcode = "BMIopcode = "BNEopcode = "BPLopcode = "BRAopcode = "BSRopcode = "BVCopcode = "BVSopcode = "JMPopcode = "JSR
orororororororororororororororororthen
if debug then put_line(" - TRUE"); end if;
if debug then skip_line; end if;
return true;else
if debug then put_line(" - FALSE"); end if;
if debug then skip_line,- end if;
return false;end if;
end control_opcode ,-
beginwhile not end_of_file (input_f ile) loop
get_line (input_f ile, line, count);for i in count + 1 .. line 'last looplined) := ' ';
end loop;
line_count := line_count + 1;
if debug then put_line (line (1 .. count) ) ; end if;-- CHECK IF THE LINE ISN'T A COMMENTif line(l) /= '*' then
-- NOT A COMMENT
opcode := line (opcode_range)
;
operand := line (operand_range) ,-
if control_opcode (opcode) thenif debug then put_l ine (" FOUND BRANCH OPCODE - LOOKING FOR
operand) ; end if;-- SEARCH THE LABEL LIST FOR THE OPERANDsearch := label_list;found := false;while not found loop
--if debug then put_l ine ( "COMPARING " & operand & " TO '
search. label) ; end if;
if operand = search. label then-- FOUND MATCH, ADD CURRENT LINE NUMBER TO LISTif debug then put_l ine ( "FOUND MATCHING LABEL - ADDING
LINE NUMBER"); end if;
65
-- ADD TO ENDnew_caller := new call_node;new_caller .next := null;new_caller. caller : = line_count;if search. called_by = null then
search. called_by := new_caller;else
caller := search. called_by;while caller. next /= null loop
caller := caller. next ,-
end loop;caller. next : = new_caller;
end i f
;
found : = true;else
search := search. next;if search = null thenput_line ("COULD NOT FIND LABEL " & operand & " AT LINE
" & integer ' image (line_count) )
;
found := true;end i f
;
end i f
;
end loop;end if;
end if;
if debug then skip_line; end if;end loop;
end parse_control
;
procedure report_results isbegin
while label_list /= null loopput (label_list. label & " (");
if label_list . line < 10 thenput (label_list . line, 1)
;
elsif label_list . line < 100 thenput (label_list . line, 2);
elsif label_list . line < 1000 thenput (label_list . line, 3)
;
elseput (label_list . line, 4);
end i f ,-
put (
" ) ")
;
while label_list . called_by /= null loopput (
" ")
;
put (label_list . called_by. caller, 4)
;
label_list .called_by := label_list . called_by .next
;
end loop;label_list := label_list .next ,-
new_l ine
;
end loop;end report_results
;
beginopen (input_f ile, in_file, "s_dbp . src" )
,-
create (output_f ile, out_file, "s_dbp . 1st " )
;
establish label list;
66
close (input_file)
;
close (output_f ile)
;
open (input_f ile, in_file, "s_dbp. src"
)
parse_control
;
close (input_f ile)
;
report_results
;
end parser;
67
APPENDIX D
A. DATA BUFFER PROCESSOR SOURCE CODE LISTING
1 *********************************************
2 *
3 * BEGIN POWER ON INIT4 *
5 ORG 0DC00H6 PWRON LDS #0 0FFFH7 SEI8 LDX #IRS9 STX 0FFF8H
10 STAA MPUB11 JSR INIT12 STAA BRATE1 SET BIT RATES = 75 BPS13 STAA BRATE214 LDAA #055H **TEST RAM**15 CLRB16 RAMT LDX #0FFCH17 RAMTST STAA 0,X18 CMPA 0,X19 BNE RAMERR20 STAA MPUB21 DEX22 BNE RAMTST23 TSTB24 BNE TSTROM25 LDAA #0AAH TEST OTHER RAM BITS26 INCB27 BRA RAMT28 TSTROM JSR ROMTST **NOP FOR TESTING**29 JSR CLEAR30 BRA PWRON131 RAMERR LDAA #020H **RAM ERROR**32 STAA LATCH2 *****
33 STAA MPUB CRASH34 BRA RAMERR *****
35 *********************************************
36 *
37 *
38 ROMTST CLRA **TEST ROM**39 CLRB40 LDX #PWRON41 ROMTSA ADDA 0,X42 ADCB #0
43 STAA MPUB44 INX45 CPX #PGMTOP46 BNE ROMTSA47 CMPA CKSMA48 BNE ROMERR49 CMPB CKSMB
69
50
5152
53
54
5556
57
58
59606162
63
64656667
686970
7172
7374
757677
78
79808182
83
84
8586
87
88
8990
9192
93
94
95
96
97
98
99100101102103104105106
BNERTS
*
ROMERR LDAASTAASTAABRA
ROMERR
#040HLATCH2MPUBROMERR
**ROM ERROR*******
CRASH*****
CLEAR LATCHED INPUTS
ENABLE INTERRUPTS ON AC I
A
PWRON1 JSR SETUP1LDAA PIA1ADLDAA PIA1BDLDAA #09DHSTAA ACIACSCLIJMP TDMA
***********************************************************
INIT LDAASTAALDAASTAACLRASTAASTAASTAASTAASTAASTAASTAASTAASTAASTAASTAASTAASTAASTAACOMASTAASTAASTAASTAASTAASTAALDAASTAALDAASTAASTAASTAASTAASTAASTAASTAASTAASTAALDAA
#01FHACIACS#0FHLATCH3
PIA1ACPIA1BCIOl + l
101 + 3
102 + 1
102 + 3
103 + 1
103 + 3
104 + 1
104 + 3
101102103104
PIA1ADPIA1BD101 + 2
102 + 2
103 + 2104 + 2
#03EHPIA1AC#02EHIOl + l
101 + 3
102 + 1
102 + 3
103 + 1
103 + 3
104 + 1
104 + 3
PIA1BCPIA1AD
MASTER RESET ACIADISABLE INTERRUPTS
RESET I/O FIFOSI/O PORT Sc PIA INIT
SET DATA DIRECTION REGA - SIDE = INPUTSFOR I/O PORT
B-SIDE = OUTPUTSFOR I/O PORT
SET CONTROL REG
CLEAR LATCHED INPUTS
70
107 LDAA PIA1BD108 CLRA10 9 STAA PIA1AD110 STAA LATCH1 CLEAR SIGNAL ACQ. LINES111 STAA LATCH2112 RTS113 ***********************************************************
114 *
115 *
116 CLEAR CLRA CLEAR RAM MEMORY117 LDX #0FF8H118 CLEARA STAA 0,X119 DEX12 BNE CLEARA121 STAA INPT1122 RTS123 ***********************************************************
124 *
125 *
126 SETUP BSR CLEAR12 7 SETUP
1
INCA12 8 STAA TDMAFG SETUP RCCOW & CCOW PORTS12 9 INCA13 STAA MSDOl131 STAA MSD02132 STAA MSD0313 3 STAA MSD04134 LDAA #0FH INIT FIFO MR INFO13 5 STAA MRFTA136 STAA LATCH313 7 LDX #ERCRX13 8 STX RCRXPT13 9 LDAA DATA1 CHECK FOR 'TEST 1' MODE140 BITA #010H141 BEQ SETUP3142 LDAA #0FH143 STAA PTONRX144 LDAA #024H145 STAA BRATE1 INIT BIT RATES146 STAA BRATE2 FOR TEST #1 MODE:147 LDAA #020H ALL = 2400 BPS14 8 STAA CHRAT114 9 STAA CHRAT215 STAA CHRAT3151 STAA CHRAT4152 SETUP3 RTS153 ***********************************************************
154 *
155 *
156 TDMA STAA MPUB ***BITE OUTPUT***15 7 LDAA DATA1 CHECK TDMA SWITCH FLAG158 BITA #020H OF T&C PROCESSOR159 BNE TDMA116 LDAB TDMAFG161 BNE TDMAI162 ***********************************************************
163 *
71
164 *NON-TDMA SERVICE165 *
166 BITA #01H167 BEQ TDMAA168 LDAA #01FH169 BRA TDMAB170 TDMAA LDAA #0FH171 TDMAB STAA LATCH3172 BRA TDMA173 *
174 TDMAI SEI175 JSR INIT176 CLR TDMAFG177 CLR PIA1BD178 LDAA DATA3179 LDAA #036H180 STAA PIA1AC181 LDAA #03EH182 STAA PIA1AC183 BRA TDMA184 *
185 TDMAI LDAA TDMAFG186 BNE RBI187 STAA PTONRX188 BSR SETUP1189 LDAA #09DH190 STAA ACIACS191 CLI192 *********************
193 *
194 *
195 RBI LDAA PIA1AC196 BMI RBIA197 JMP TBI198 RBIA LDAB SIEN199 BEQ RBIB200 LDAB BITELT201 ORAB #020H202 STAB BITELT203 CLR SIEN204 CLR SELFTR205 CLR FILLFG206 CLR INPTRC207 *
208 ***** BEGIN RECEIVE209 *
210 RBIB LDAB PIA1AD211 LDAA DATA4212 LDAB SELFTR213 BEQ RBIBA214 LDAB BITELT215 ORAB #080H216 STAB BITELT217 RBIBA ANDA #0C7H218 TAB219 ANDA #7
220 CLR MASKIO
CHECK NON-TDMA TX REQ
SET TX ACK
CLEAR TX ACK
INIT. FOR NON-TDMA
RESET TX FIFO
STROBE "NON-TDMA START'
TURN ALL PORTS OFFINIT FOR TDMAENABLE RX INTERRUPTS
**************************************
CHECK RCV SETUP RDY
SYST INPUT FIFO BITE(RX FIFO)
CLEAR INPUT FIFO FLAGS
BURST INIT *****
CLR LATCHED STROBELOAD RCV SETUP DATA
*SELF TEST FAIL BITE*
72
221 CMPA #1
222 BEQ RBI1C223 JMP RBI2B224 *
225 RBI1C LDAA XMTRQ1226 BEQ RBI1CA227 JMP TBI228 RBI1CA LDAA PTONRX229 ANDA #1230 BNE RBI ID231 JMP TBI232 RBI ID ORAB CHRAT1233 LDAA UT1234 BEQ RBI1E235 LDAA DATA6236 BITA #8237 BNE RBI IDA238 LDAA BITELT239 ORAA #2240 STAA BITELT241 RBI IDA CLR UT1242 RBI IE LDAA #1243 STAA MASKIO244 TSTB245 BMI RBI1G246 LDAA MSDOl247 BEQ RBI1EA248 CLR FLBFG1249 LDAA #2
250 STAA MSDOl251 JMP TBI252 RBI1EA INCA253 STAA FMSDOl254 STAA MSDOl255 STAA FILLFG256 LDAA CHCT1257 LDAB CHCT1+1258 ADDB #32259 ADCA #0260 STAA MDOCT1261 STAB MDOCT1+1262 LDAB CHRAT1263 BRA RBI1H1264 RBI1G LDAA MSDOl265 CMPA #2
266 BNE RBI1H267 LDAA MRFTA268 ORAA #1269 STAA MRFTA270 STAA LATCH3271 RBI1GA LDX #SBUFF1272 STX OUTPT1273 STAA FLBFG1274 CLRA275 STAA CHCT1276 LDAA #0FFH277 TST BPS16K
**PORT #1 RX BURST INIT**
CHECK FIFO'S "O.R.
"
***I/0 FIFO #1 BITE***
INIT I/O ON/OFF MASK
TWO OR MORE MISSING DO'S
**FIRST MISSING DO SETUP**
SETUP TO STUFF"FF" INTO BUFFER
ADJ COUNT FOR I/O FIFO
TWO OR MORE MISSING DO'S?
RESET I/O #1 FIFO
INIT BUFFER #1 ANDI/O FIFO #1
**RX ELAST BUFF CH**16KBPS?
73
278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
RBI 1GB
RBI1HRBI1H1
RBI1HA
RBI1HB
RBI2B
RBI2C
RBI2CA
RBI2D
RBI2DARBI2E
BEQJSRSTXLDXSTXBRASTAASTAASTAASTAASTAALDAASTAALDXSTXCLRLDXSTXLDAABEQLDXSTXLDXSTXBRALDXSTXLDXSTXLDAAORAASTAASTAAJMP
CMPABEQJMPLDAABEQJMPLDAAANDABNEJMPORABLDAABEQLDAABITABNELDAAORAASTAACLRLDAASTAA
RBI1GBSTUFFINPT1#256CHCT1RBI1HSBUFF1SBUFF1+1SBUFF1+2SBUFF1+3SBUFF1+4#5CHCT1+1#SBUFFl+5INPT1MSDOl#INPT1RXPNTRBPS16KRBI1HA#EBUFF4RXUVAL#SBUFF1RXLVALRBI1HB#EBUFF1RXUVAL#SBUFF1RXLVALSIGACQ#1
SIGACQLATCH1RBIS
#2
RBI2CRBI3BXMTRQ2RBI2CATBIPTONRX#2
RBI2DTBICHRAT2UT2RBI2EDATA6#4
RBI2DABITELT#4
BITELTUT2#2
MASKIO
16 KBPS ELASTIC BUF . CHARS
17 MIN. ELASTIC BUFF
RCV BURST
INIT FOR INPUTFIFO SERVICE
16 KBPS?
INIT 16 KBPS BUFFER PNTRS
.
SET "SIGNAL ACQ. I/O #1"
**PORT #2 BURST INIT**
CHECK FIFO'S "O.R.
***I/0 FIFO #2 BITE***
INIT I/O ON/OFF MASK
74
335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
388389390391
TSTBBMILDAABEQCLRLDAASTAAJMP
RBI2EA INCASTAASTAASTAALDAALDABADDBADCASTAASTABLDABBRA
RBI2G LDAACMPABNELDAAORAASTAASTAA
RBI2GA LDXSTXSTAACLRASTAALDAATSTBEQJSRSTXLDXSTXLDXSTXBRA
RBI2GB STAASTAASTAASTAASTAALDAASTAALDXSTX
RBI2H CLRRBI2H1 LDX
STXLDAABEQLDX
RBI2GMSD02RBI2EAFLBFG2#2
MSD02TBI
FMSD02MSD02FILLFGCHCT2CHCT2+1#32#0
MDOCT2MDOCT2+1CHRAT2RBI2H1MSD02#2
RBI2HMRFTA#2
MRFTALATCH3#SBUFF2OUTPT2FLBFG2
CHCT2#0FFHBPS16KRBI 2GBSTUFFINPT2#256CHCT2#SBUFF1OUTPT2RBI2HSBUFF2SBUFF2+1SBUFF2+2SBUFF2+3SBUFF2+4#5
CHCT2+1#SBUFF2+5INPT2MSD02#INPT2RXPNTRBPS16KRBI2HA#EBUFF4
TWO OR MORE MISSING DO'S
**FIRST MISSING DO SETUP**
SETUP TO STUFF"FF" INTO BUFFER
ADJ COUNT FOR I/O FIFO
TWO OR MORE MISSING DO'S?
RESET I/O #2 FIFO
INIT BUFFER #2 ANDI/O FIFO #2
**RX ELAST BUFF CH**16KBPS?
16KBPS ELASTIC BUF . CHARS.
17 MIN ELAST BUFF
RCV BURST
INIT FOR INPUTFIFO SERVICE
16 KBPS?
75
392 STX RXUVAL393 LDX #SBUFF1394 STX RXLVAL395 BRA RBI2HB396 RBI2HA LDX #EBUFF2397 STX RXUVAL398 LDX #SBUFF2399 STX RXLVAL400 RBI2HB LDAA SIGACQ401 ORAA #2402 STAA SIGACQ403 STAA LATCH
1
404 JMP RBIS405 *
406 RBI3B CMPA #3407 BEQ RBI3C408 JMP RBI4B409 RBI3C LDAA XMTRQ3410 BEQ RBI3CA411 JMP TBI412 RBI3CA LDAA PTONRX413 ANDA #4414 BNE RBI3D415 JMP TBI416 RBI3D ORAB CHRAT3417 LDAA UT3418 BEQ RBI3E419 LDAA DATA6420 BITA #2421 BNE RBI3DA422 LDAA BITELT423 ORAA #8424 STAA BITELT425 RBI3DA CLR UT3426 RBI3E LDAA #4427 STAA MASKIO428 TSTB429 BMI RBI3G430 LDAA MSD03431 BEQ RBI3EA432 CLR FLBFG3433 LDAA #2434 STAA MSDO 3
435 JMP TBI436 RBI3EA INCA437 STAA FMSD03438 STAA MSD03439 STAA FILLFG440 LDAA CHCT3441 LDAB CHCT3+1442 ADDB #32443 ADCA #0444 STAA MDOCT3445 STAB MDOCT3+1446 LDAB CHRAT3447 BRA RBI3H1448 RBI3G LDAA MSD03
INIT. 16KBPS BUF. PNTRS
.
SET "SIGNAL ACQ. I/O #2
**PORT #3 BURST INIT**
CHECK FIFO'S "O.R.
**I/0 FIFO #3 BITE***
INIT I/O ON/OFF MASK
**FIRST MISSING DO SETUP**
SETUP TO STUFF"FF" INTO BUFFER
ADJ COUNT FOR I/O FIFO
76
449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
RBI3GA
RBI 3GB
RBI3HRBI3H1
RBI3HA
RBI3HB
RBI4B
RBI4C
RBI4CA
CMPABNELDAAORAASTAASTAALDXSTXSTAACLRASTAALDAATSTBEQJSRSTXLDXSTXLDXSTXBRASTAASTAASTAASTAASTAALDAASTAALDXSTXCLRLDXSTXLDAABEQLDXSTXLDXSTXBRALDXSTXLDXSTXLDAAORAASTAASTAAJMP
CMPABEQJMPLDAABEQJMPLDAA
#2 TWO OR MORE MISSING DO'S?RBI3HMRFTA#4 RESET I/O FIFO #3MRFTALATCH3#SBUFF3 INIT BUFFER #3 ANDOUTPT3 I/O FIFO #3FLBFG3
CHCT3#0FFHBPS16KRBI3GBSTUFFINPT3#256CHCT3#SBUFF1OUTPT3RBI3HSBUFF3SBUFF3+1SBUFF3+2SBUFF3+3SBUFF3+4#5CHCT3+1#SBUFF3+5INPT3MSD03#INPT3RXPNTRBPS16KRBI3HA#EBUFF4RXUVAL#SBUFFIRXLVALRBI3HB#EBUFF3RXUVAL#SBUFF3RXLVALSIGACQ#4SIGACQLATCH
1
RBIS
#4
RBI4CRBIJXMTRQ4RBI4CATBIPTONRX
**RX ELAST BUFF CH**16KBPS?
16 KBPS ELASTIC BUF . CHARS
17 MIN ELASTIC BUFF
RCV BURST
INIT FOR INPUTFIFO SERVICE
INIT 16KBPS PNTRS
SET "SIGNAL ACQ. I/O #3"
**PORT #4 BURST INIT**
77
506 ANDA #8507 BNE RBI4D508 JMP TBI509 RBI4D ORAB CHRAT4510 LDAA UT4511 BEQ RBI4E512 LDAA DATA6513 BITA #1514 BNE RBI4DA515 LDAA BITELT516 ORAA #010H517 STAA BITELT518 RBI 4DA CLR UT4519 RBI4E LDAA #8
520 STAA MASKIO521 TSTB522 BMI RBI4G523 LDAA MSD04524 BEQ RBI4EA525 CLR FLBFG4526 LDAA #2527 STAA MSD04528 JMP TBI529 RBI4EA INCA530 STAA FMSD04531 STAA MSD04532 STAA FILLFG533 LDAA CHCT4534 LDAB CHCT4+1535 ADDB #32536 ADCA #0537 STAA MDOCT4538 STAB MDOCT4+1539 LDAB CHRAT4540 BRA RBI4H1541 RBI4G LDAA MSD04542 CMPA #2543 BNE RBI4H544 LDAA MRFTA545 ORAA #08H546 STAA MRFTA547 STAA LATCH
3
548 RBI4GA LDX #SBUFF4549 STX OUTPT4550 STAA FLBFG4551 CLRA552 STAA CHCT4553 LDAA #0FFH554 TST BPS16K555 BEQ RBI4GB556 JSR STUFF557 STX INPT4558 LDX #256559 STX CHCT4560 LDX #SBUFF1561 STX OUTPT4562 BRA RBI4H
CHECK FIFO'S "O.R.
"
**I/0 FIFO #4 BITE***
INIT I/O ON/OFF MASK
TWO OR MORE MISSING DO'S
**FIRST MISSING DO SETUP**
SETUP TO STUFF"FF" INTO BUFFER
ADJ COUNT FOR I/O FIFO
TWO OR MORE MISSING DO'S?
RESET I/O FIFO #4
INIT BUFFER #4 ANDI/O FIFO #4
**RX ELAST BUFF CH**16KBPS?
16 KBPS ELASTIC BUFF. CHARS
17 MIN ELASTIC BUFF
78
563564565566567568569570571572573
574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
RBI4GB
RBI4HRBI4H1
STAASTAASTAASTAASTAALDAASTAALDXSTXCLRLDXSTXLDAABEQLDXSTXLDXSTXBRALDXSTXLDXSTXLDAAORAASTAASTAAJMP
RBI4HA
RBI4HB
SBUFF4 RCV BURSTSBUFF4+1SBUFF4+2SBUFF4+3SBUFF4+4#5CHCT4+1#SBUFF4+5INPT4MSD04#INPT4RXPNTRBPS16KRBI4HA#EBUFF4RXUVAL#SBUFF1RXLVALRBI4HB#EBUFF4RXUVAL#SBUFF4RXLVALSIGACQ#8
SIGACQLATCH
1
RBIS• ••it*******************************************
INIT FOR INPUTFIFO SERVICE
INIT 16KBPS PNTRS
SET "SIGNAL ACQ I/O #4"
*
RBIJ
RBIJA
RBIK
RBIKA
RBIL
CMPABNESTAALDAALDABJMPLDXCPXBEQPSHALDAAORAASTAAPULALDXSTXLDXCMPABNETSTBBMILDAASTAAJMP
LDAA
#7RBIJASELFTR#0#60RBITRCRXPT#ERCRXRBIK
BITELT#1BITELT
#ERCRXRCRXPT#SRCRX#6RBIN
RBIL#0A5HACIADTBI
DATA1
CHECK FOR SELF TEST RX BURS
INIT. RX FIFO COUNT
R/CCOW RX BUFFER EMPTY?
**RCCOW/CCOW ERROR**
CCOW DO?
OUTPUT CCOW DOABSENT CODE TO SCU
TX REQUEST STATUS WBR
79
620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676
RBIM
RBIN
RBIO
RBIS
ANDAORAASTAA
LDAASTAAINXSTXSTAASTAAJMPTSTBBMILDAABRALDAABRABSRBRA
#0FH#0C0HACIAD
#0A1H0,X
RCRXPTINPTRCSIENTBI
RBIO#0A6HRBIKA#0A2HRBIMBITRATRBIT
SEND C CODE TO SCP
CCOW DO PRESENT CODE
ADJ R/CCOW RX BUFFER PNTR
WBRWBRWBR
RCCOW DO?
RCCOW DO ABSENT CODE
RCCOW DO PRESENT CODE
***************************************************************
BITRAT
RBISA
RBI SB
RBISC
RBISD
RBISE
RBISF
TSTBNEASLBBMIANDBBNELDABCLRARTSCMPBBNELDABCLRARTSCMPBBNELDABCLRARTSCMPBBNELDABCLRARTSCMPBBNELDABLDAARTSLDABLDAARTSLDABLDAARTS
BPS16KRBISF
RBIU#070HRBISA#13
#010HRBISB#52
#020HRBISC#104
#030HRBISD#208
#040HRBISE#0A0H#1
#040H#3
#0D5H#0AH
TEST 16KBPS
75 BPS @ 1.386 SEC13 BYTES
300 BPS @ 1.386 SEC52 BYTES
600 BPS @ 1.386 SEC104 BYTES
1200 BPS @ 1.386 SEC2 08 BYTES
2400 BPS416 BYTES
1.386 SEC
4800 BPS @ 1.386 SEC8 32 BYTES
16000 BPS @ 1.386 SEC2 77 3 BYTES
80
677678679680681682683684685686687688689690691692693694695696697698699700701702
703704705706707708709710711712713714715716717718719720721722723724725726727
728729730731732
733
RBIU LDABCLRARTS
#78 75 BPS @ 8.32 SEC78 BYTES
***********************************************************
RBIT
*******
TBI
TBI1
TBI2
TBI3
TBI4
TBIA
STAASTABCLRASTAAINCASTAA
******
LDAABEQCLRLDAAORAABRALDAABEQCLRLDAAORAASTAASTAALDAABEQLDAAORAASTAALDAABMIJMPLDAABEQLDABORABSTAB
INCHC MSB'S OF CH . CNT
.
INCHC+1 LSB'S OF CH . CNT.
INPTRC
SIEN***********************************************
CDRDYTBI1CDRDYPA1AD#020HTBI2RDRDYTBI 3
RDRDYPA1AD#010HPA1ADPIA1ADIRSBITTBI4BITELT#01HBITELTPIA1BCTBIAIOIPTSOENTBIBBITELT#040HBITELT
TEST CCOW DATA RDY FLG
,
SET DATA RDY CCOW*
TEST RCCOW RDY FLG.
SET DATA RDY RCCOW*
IRS BITE?
CHECK TX SETUP READY
SYST OUTPUT FIFO BITE(TX FIFO)
BEGIN TRANSMIT BURST INITIALIZATION *****
TBIB
TBIBATIBA
LDAALDAALDABBITBBEQANDACMPABEQJMPJMPANDATABANDA
PIA1BDDATA3DATA5#1TIBA#7#7
TBIBAIOIPTTBIG#047H
#7
CLR LATCHED STROBELOAD TX SETUP DATACHECK TX INHIBIT
TX INHIBIT: ABORTALLOW SELF TEST BURST
81
734 CMPA #1735 BNE TBI2B736 LDAA PTONRX IS PORT ON?737 BITA #1
738 BNE TBI1BA739 JMP IOIPT ABORT: PORT IS
740 •
741 TBI1BA TST BPS16K742 BEQ TBI1E743 LDX #SBUFF1 16 KBPS744 STX TXLVAL745 LDX #EBUFF4746 STX TXUVAL747 BRA TBI1EA748 TBI1E LDX #SBUFF1 INIT FOR OUTPUT749 STX TXLVAL FIFO SERVICE750 LDX #EBUFF1751 STX TXUVAL752 TBI1EA LDX #INPT1753 STX TXPNTR754 CLRA755 STAA UT1756 STAA MDOCT1757 STAA MDOCTl+1758 STAA FMSDOl759 LDAA #2760 STAA MSDOl761 LDAA #0FEH762 STAA XMASK763 LDAA #0EFH764 STAA MASKR765 LDAA GROUP
1
766 BEQ TBI1F767 STAA GRP1FG768 TBI1F CLRA769 STAA GROUP
1
770 ORAB CHRAT1771 JMP TBIN772 •
773 TBI2B CMPA #2774 BNE TBI3B775 LDAA PTONRX IS PORT ON?776 BITA #2777 BNE TBI2BA778 JMP IOIPT ABORT: PORT IS <
779 TBI2BA TST BPS16K780 BEQ TBI2E781 LDX #SBUFF1 16 KBPS782 STX TXLVAL783 LDX #EBUFF4784 STX TXUVAL785 BRA TBI2EA786 TBI2E LDX #SBUFF2 INIT. FOR OUTPUT787 STX TXLVAL FIFO SERVICE788 LDX #EBUFF2789 STX TXUVAL790 TBI2EA LDX #INPT2
82
791 STX TXPNTR792 CLRA793 STAA UT2794 STAA MDOCT2795 STAA MDOCT2+1796 STAA FMSD02797 LDAA #2798 STAA MSD02799 LDAA #0FDH800 STAA XMASK801 LDAA #0DFH802 STAA MASKR803 LDAA GROUP2804 BEQ TBI2F805 STAA GRP1FG806 TBI2F CLRA807 STAA GROUP
2
808 ORAB CHRAT2809 JMP TBIN810 *
811 TBI3B CMPA #3812 BNE TBI4B813 LDAA PTONRX IS PORT ON?814 BITA #4815 BNE TBI3BA816 JMP IOIPT ABORT: PORT IS <
817 TBI3BA TST BPS16K818 BEQ TBI3E819 LDX #SBUFFI 16 KBPS820 STX TXLVAL821 LDX #EBUFF4822 STX TXUVAL823 BRA TBI3EA824 TBI3E LDX #SBUFF3 INIT. FOR OUPTUT825 STX TXLVAL FIFO SERVICE826 LDX #EBUFF3827 STX TXUVAL828 TBI3EA LDX #INPT3829 STX TXPNTR830 CLRA831 STAA UT3832 STAA MDOCT3833 STAA MDOCT3+1834 STAA FMSD03835 LDAA #2836 STAA MSD03837 LDAA #0FBH838 STAA XMASK839 LDAA #0BFH840 STAA MASKR841 LDAA GROUP
3
842 BEQ TBI3F843 STAA GRP1FG844 TBI3F CLRA845 STAA GROUP
3
846 ORAB CHRAT3847 JMP TBIN
83
848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904
*
TBI4B
TBI4BA
TBI4E
TBI4EA
TBI4F
TBIG
TBIG1
TBIGA
CMPABNELDAABITABNEJMPTSTBEQLDXSTXLDXSTXBRALDXSTXLDXSTXLDXSTXCLRASTAASTAASTAASTAALDAASTAALDAASTAALDAASTAALDAABEQSTAACLRASTAAORABJMP
CMPABNESTAASTAALDXSTXLDXSTXLDAALDABSTABDECABNEJMPCMPABNELDAABITA
#4TBIGPTONRX#8TBI4BAIOIPTBPS16KTBI4E#SBUFF1TXLVAL#EBUFF4TXUVALTBI4EA#SBUFF4TXLVAL#EBUFF4TXUVAL#INPT4TXPNTR
UT4MDOCT4MDOCT4+1FMSD04#2MSD04#0F7HXMASK#07FHMASKRGR0UP4TBI4FGRP1FG
GROUP4CHRAT4TBIN
#7TBIGASOENSELFTT#08000HTXPNTR#28OUTCHC#32#033HPIA1BD
TBIG1RBI#6TBIJPA1AD#020H
IS PORT ON?
ABORT: PORT IS OFF
16 KBPS
INIT. FOR OUTPUTFIFO SERVICE
CHECK FOR SELF TEST TX BURS
DUMMY VALUE FOR TXPNTR
SELF TEST CH CNT - 32
SELF TEST TX CHAR
OUTPUT 32 SELF TESTCHARS. TO TX FIFO
IF NO DATA READY, OUTPUT13 BYTES OF 11001100
84
905 BNE TBIGC906 LDAA #0CCH907 LDX #13
908 TBIGB STAA PIA1BD909 DEX910 BNE TBIGB911 BRA TBIHB912 TBIGC LDX #SCTXB913 STX CTXPT914 TBIH LDAA 0,X
915 STAA PIA1BD916 INX917 CPX #ECTXB918 BNE TBIH919 LDAA PA1AD920 ANDA #0DFH921 TBIHA STAA PIA1AD922 STAA PA1AD923 *
924 *
925 TBIHB ASLB926 BMI TBIHC927 JMP IOIPT928 TBIHC CLRA929 STAA PIA1BD930 STAA PIA1BD931 STAA PIA1BD932 JMP IOIPT933 TBIJ LDX #SRTXB934 STX RTXPT935 TBIK LDAA 0,X936 STAA PIA1BD937 INX938 CPX #ERTXB939 BNE TBIK940 LDAA PA1AD941 ANDA #0EFH942 BRA TBIHA943 TBIN JSR BITRAT944 TBIO STAA OUTCHC945 STAB OUTCHC+1946 CLRA947 INCA948 STAA SOEN949 TBIQ LDX TXPNTR950 LDAA GRP1FG951 BEQ TBIS952 TBIQ1 LDAA OUTCHC953 LDAB OUTCHC+1954 ADDB #6
955 ADCA #0
956 SUBB 5,X957 SBCA 4,X958 BCS TBIR959 BNE TBIRA960 TSTB961 BNE TBIRA
rNO CCOW DATA RDY**
PUT CHAR IN OUTPUT FIFO
CLR DATA READY CCOW
PUT CHAR IN OUTPUT FIFO
CLR DATA READY RCCOW
GET TX CH. CNT.MSB'S OF CH. CNT.
LSB ' S OF CH . CNT
.
CHECK IF FIRST GROUP
***COMPUTE FILL COUNT***
ADD ELASTIC BUFF (48 BITS)
BURST CH CNT + ELASTIC BUFF- BUFF CH CNT = FILL COUNT
85
962 TBIR CLR GRP1FG963 BRA TBIS964 TBIRA STAA FILLCT965 STAB FILLCT+1966 LDAA 4,X967 LDAB 5,X968 SUBB #6969 SBCA #0970 BCC TBIRB971 CLRA972 STAA SOEN973 LDAA BITELT974 ORAA #040H975 STAA BITELT976 BRA IOIPT977 TBIRB STAA OUTCHC978 STAB OUTCHC+1979 TBIS JSR SOFAA980 **********************
981 *
982 *
983 *
984 I01PT LDAA PTONRX985 ANDA #1986 BEQ IOlAl987 CLR PIOFF988 JMP IOIA989 I01A1 LDAA PIOFF990 BEQ I01A2991 JMP I02PT992 I01A2 STAA CHCT1993 STAA CHCT1+1994 STAA XMTRQ1995 STAA UT1996 LDX #0997 STX LGDPT1998 STAA OUFG1999 STAA EMPTY1
1000 LDAA #21001 STAA MSDOl1002 INCA1003 STAA FLBFG11004 LDAA MRFTA1005 ORAA #11006 ANDA #0EFH1007 STAA MRFTA1008 STAA LATCH31009 STAA PIOFF1010 LDAA PA1AD1011 ANDA #0FEH1012 STAA PA1AD1013 STAA PIA1AD1014 LDX #SBUFF11015 STX INPT11016 STX OUTPT11017 LDAA SIGACQ1018 ANDA #0FEH
NO FILL REQUIRED
NUMBER OF GOOD CHARS IN FIRBURST=BUFF CH CNT - ELASTICSUBT ELASTIC BUFF (48 BITS)
ERROR: ELASTIC BUFFER NOTYET FULL FOR TRANSMISSION
**TX FIFO BITE LITE ON**
SERVICE OUTPUT FIFO************************************************
PORT #1 ON?
PORT IS OFF
RESET FIFO I/O #1CLR "XMT ACK"
CLEAR "DATA RDY PORT #1"
CLR "SIGNAL ACQ. I/O #1
86
101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075
STAASTAALDXCPXBNECLR
I01A3 JMP
SIGACQLATCH1TXPNTR#INPT1101A3SOENI02PT
***********************************************************
INPUT SERVICE SUBROUTINE
#1XFER1101INPT10,X
OUTPT1IOILSXMRFTA#0EFH#1MRFTALATCH3OUFG1
I02PTBPS16KIOILSA#EBUFF4IOILSB#SBUFF1IOILSB#EBUFF1IOILSB#SBUFF1INPT1CHCT1
CHCT1
OBTAIN CHARGET PUT PNTRPUT ITINCR PUT PNTRTEST OVERFLOWBRANCH NO OVERFLOW**OVERFLOW**CLR "XMT ACK"
RESET FIFO
SET OUFG FLAG*REMOVE RETURN*
IOILS LDAASTAALDAALDXSTAAINXCPXBNELDAAANDAORAASTAASTAASTAAINSINSJMP
IOILSX LDAABEQCPXBNELDXBRA
IOILSA CPXBNELDX
IOILSB STXLDXINXSTXRTS
***********************************************************
*LOAD I/O #1 FIFO WITH 1 CHAR. ROUTINE*
16 KBPS
TEST END OF INPUTNOGET INITIAL VALUE
GET CHAR COUNTINCR COUNTPUT BACK
IOILF LDXLDAABITABNELDAASTAA
IOILFI INXLDABBEQCPXBNE
OUTPT1RXINHB#1IOILFI0,X101 + 2
BPS16KIOILFA#EBUFF4IOILFB
IS THE EXTEND TRANSMIT FLAG SET?YES:RX NOT ALLOWED
OUTPUT CH. TO I/O #1 FIFO
16 KBPS
WBRWBRWBR
87
1076 LDX #SBUFF11077 BRA IOILFB1078 I01LFA CPX #EBUFF11079 BNE IOILFB1080 LDX #SBUFF11081 IOILFB STX OUTPT11082 LDAA #11083 STAA XFER11084 LDAA FMSDOl TEST MISSING DO1085 BEQ IOILFC1086 LDX MDOCT11087 DEX1088 STX MDOCT11089 BNE IOILFC1090 LDAA SIGACQ1091 ANDA #0FEH1092 STAA SIGACQ1093 STAA LATCH11094 CLR FMSDOl1095 IOILFC LDX CHCT1 ADJUST CHAR COUNT1096 DEX1097 STX CHCT11098 BNE IOILFD1099 INS REMOVE RETURN1100 INS1101 JMP IOIYEI GO CHECK UNDERFLOW1102 IOILFD RTS1103 ***********************************************************
1104 *
1105 *LOAD :I/O #1 FIFO WITH 3 BUF. CH. ROUTINE1106 *
1107 LD1 LDX OUTPT11108 LDAA 0,X1109 STAA 101 + 2
1110 LDAA 1,X1111 STAA 101 + 2
1112 LDAA 2,X1113 STAA 101 + 2
1114 INX1115 INX1116 INX1117 STX OUTPT11118 LDX CHCT11119 DEX1120 DEX1121 DEX1122 STX CHCT11123 RTS1124 **********************************************************
1125 *
1126 ***** BEGIN SERVICING I/O PORT #1 *****
1127 *
1128 IOIA LDAA PTONRX RX ONLY?1129 BITA #010H1130 BEQ IOIAA1131 JMP IOIY1132 IOIAA LDAA DATA1
88
1133 BITA #1
1134 BNE IOIB1135 JMP IOIY1136 I01B ASLA1137 BPL IOIC1138 LDAA XMTRQ11139 BNE IOIC1140 LDAA EMPTY11141 BNE IOICA1142 LDX CHCT11143 BEQ IOIBB1144 IOIBA JMP IOIYD1145 I01BB LDAA DATA61146 BITA #8
1147 BNE IOIBA1148 I01C LDAA XMTRQ11149 BNE IOID1150 LDAA EMPTY11151 BEQ IOIE1152 IOICA CLR EMPTY11153 STAA XMTRQ11154 LDX #01155 STX LGDPT11156 LDAA MRFTA1157 ORAA #010H1158 STAA MRFTA1159 STAA LATCH
3
1160 I01D LDAA OUFG11161 BEQ IOIH1162 STAA XFER11163 JMP I02PT1164 I01E LDAA DATA51165 ANDA #1
1166 BEQ IOIF1167 JMP I02PT1168 I01F LDAA #11169 STAA XMTRQ11170 STAA GROUP
1
1171 STAA XFER11172 STAA FLBFG11173 LDAA SIGACQ1174 ORAA #010H1175 ANDA #0FEH1176 STAA SIGACQ1177 STAA LATCH
1
1178 LDAA MRFTA1179 ORAA #11180 STAA LATCH31181 CLR 101 + 2
1182 ANDA #0FEH1183 ORAA #010H1184 STAA MRFTA1185 STAA LATCH31186 LDX #SBUFFI1187 STX INPT11188 LDX #SBUFF11189 STX OUTPT1
R/T SELECTED: CHECK RCV DON
TEST: I/O FIFO UNDERFLOW
BRANCH: NO UNDERFLOW
GET HERE W/MULTIPLETX REQ PER FRAME
SET "TX ACK'
CHECK TX INHIBIT
**INIT FOR PORT #1****DATA TRANSMISSION**
SELECT I/O INPUT MODECLR "SIG. ACQ. #1"
TOGGLE FIFO'S RESET
CLR PIA B-SIDE
SET "XMT ACK" I/O #1
+ 6
89
1190 LDAA #0FFH1191 STAA 0,X1192 STAA 1,X1193 STAA 2,X1194 STAA 3,X1195 STAA 4,X1196 STAA 5,X1197 LDX #6
1198 STX CHCT11199 JMP I02PT1200 I01G LDX #SBUFFI1201 STX INPT11202 STX OUTPT11203 LDX #01204 STX CHCT11205 LDAA SIGACQ1206 ANDA #0FEH1207 STAA SIGACQ1208 STAA LATCH11209 JMP 102 PT1210 IOIH LDAA DATA51211 ANDA #11212 BEQ IOIHA1213 JMP IOIYAI1214 IOIHA LDAB FLBFG11215 BEQ IOIHB1216 JMP IOIO1217 I01HB LDAA DATA61218 BITA #8
1219 BNE IOII1220 JMP I01XP1221 IOII JSR I01LS1222 LDAA DATA61223 BITA #81224 BNE IOIK1225 JMP I01XP1226 IOIK JSR I01LS1227 LDAA DATA61228 BITA #81229 BNE IOIM1230 JMP IOIXP1231 IOIM JSR IOILS1232 LDAA DATA61233 BITA #81234 BNE I01N21235 JMP IOIXP1236 I01N2 JSR IOILS1237 LDAA BPS16K1238 BNE I01N31239 JMP IOIXP1240 I01N3 LDAA DATA61241 BITA #8
1242 BNE I01N41243 JMP IOIXP1244 I01N4 JSR IOILS1245 LDAA DATA61246 BITA #8
STUFF 6 ELASTICBUFFER CHARACTERS (CC)
CLR "SIGNAL ACQ. I/O #1
CHECK TX INHIBIT
TEST FIFO "O.R.
LOAD & STORE 1 CHAR
LOAD Sc STORE 2 CHAR
LOAD Sc STORE 3 CHAR
LOAD & STORE 4 CHAR
*16KBPS: ALLOW MORE*I/O SERVICING*
LOAD & STORE 5 CHAR.
90
1247 BNE I01N51248 JMP IOIXP1249 I01N5 JSR IOILS1250 LDAA DATA61251 BITA #8
1252 BNE I01N61253 JMP IOIXP1254 I01N6 JSR IOILS1255 LDAA DATA61256 BITA #8
1257 BNE I01N71258 JMP IOIXP1259 I01N7 JSR IOILS1260 LDAA DATA61261 BITA #8
1262 BNE I01N81263 JMP IOIXP1264 I01N8 JSR IOILS1265 LDAA DATA61266 BITA #8
1267 BNE I01N91268 JMP IOIXP1269 I01N9 JSR IOILS1270 LDAA DATA61271 BITA #8
1272 BNE IO1N101273 JMP IOIXP1274 IO1N10 JSR IOILS1275 JMP IOIXP1276 1010 LDAA DATA61277 BITA #8
1278 BEQ IOIXP1279 I01P CLR FLBFG11280 LDAA PA1AD1281 ORAA #11282 STAA PA1AD1283 STAA PIA1AD1284 JMP IOII1285 I01XP LDAA EMPTY11286 BPL IOIXQ1287 LDX INPT11288 STX LGDPT11289 LDAA #1
1290 STAA EMPTY11291 I01XQ JMP I02PT1292 I01Y LDAA XMTRQ11293 BEQ IOIYB1294 LDAA MRFTA1295 ANDA #0EFH1296 STAA MRFTA1297 STAA LATCH
3
1298 CLR XMTRQ11299 LDAA #0FFH1300 STAA EMPTY11301 LDAA PA1AD1302 ANDA #11303 BNE IOIYA
LOAD & STORE 6 CHAR.
LOAD & STORE 7 CHAR.
LOAD Sc STORE 8 CHAR.
LOAD & STORE 9 CHAR.
LOAD & STORE 10 CHAR.
LOAD & STORE 11 CHAR.
SET "DATA RDY PORT #1"
**TEST IF SETUP****LAST GOOD DATA PNTR**DO SETUP
CLEAR "TX ACK'
FIRST TIME THATTX REQ = FALSE
91
1304 STAA CHCT11305 STAA CHCT1+11306 STAA EMPTY11307 INCA1308 STAA FLBFG11309 LDAA MRFTA1310 ORAA #11311 STAA MRFTA1312 STAA LATCH31313 JMP 102 PT1314 I01YA JMP I01D1315 I01YB LDAA EMPTY11316 BNE I01YA1317 JMP I01YD1318 I01YA1 CLRA1319 STAA XMTRQ11320 STAA EMPTY11321 LDAA PA1AD1322 ANDA #0FEH1323 STAA PIA1AD1324 STAA PA1AD1325 LDAA MRFTA1326 ORAA #1
1327 ANDA #0EFH1328 STAA MRFTA1329 STAA LATCH
3
1330 I01YC LDAA MRFTA1331 ORAA #11332 STAA MRFTA1333 STAA LATCH31334 LDAA SIGACQ1335 ANDA #0EFH1336 STAA SIGACQ1337 STAA LATCH11338 I01YC1 CLR FMSDOl1339 LDAA #2
1340 STAA MSDOl1341 STAA FLBFG11342 JMP I01G1343 IOlYD LDAA FLBFG11344 BEQ I01YF1345 STAA XFER11346 LDAA CHCT1+11347 CMPA #101348 BGE IOIYE1349 JMP I02PT135 IOlYE CLR FLBFG11351 STAA UT11352 LDAA SIGACQ1353 ANDA #0EFH1354 STAA SIGACQ1355 STAA LATCH
1
1356 LDAA MRFTA1357 ANDA #0FEH1358 STAA MRFTA1359 STAA LATCH31360 JSR LD1
NO DATA: ABORT INPUT
CLEAR "DATA RDY PORT #1"
RESET I/O #1 FIFOCLR TX ACK I/O #1
**INIT I/O PORT **
**TO OUTPUT****RX BURST DATA**RESET I/O #1 FIFO
SELECT I/O OUTPUT MODE
RCV ELASTIC BUFFER FULL?
SET OUTPUT MODE
CLR RESET ON I/O FIFO
92
136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417
IO1YE0I01YE1
I01YF
I01YFA
I01YG
IOIYH
IOIYI
IOIYJ
IOIYK
IOIYL
IOIYM
IOIYN
IOIYO
JSRLDAABEQJSRJSRJSRJSRJSRJMPLDAASTAALDAABNELDAABITABEQJMPLDXBEQLDAALDABBNEBITABEQBITABEQJSRLDAABITABEQJSRLDAABITABEQJSRLDAABEQLDAABITABEQJSRLDAABITABEQJSRLDAABITABEQJSRLDAABITABEQJSRLDAABITABEQJSR
LD1BPS16KIO1YE0LD1LD1LD1LD1LD1I02PT#1XFER1UT1IO1YE0DATA6#8I01YC1I02PTCHCT1I01YE1DATA6UT1I01YFA#8
I01YC1#080HI02PTI01LFDATA6#080HI02PTI01LFDATA6#080HI02PTI01LFBPS16KI02PTDATA6#080HI02PTI01LFDATA6#080HI02PTI01LFDATA6#080HI02PTI01LFDATA6#080HI02PTI01LFDATA6#080HI02PTI01LF
LOAD FIFO W/6 BUF . CH.
16KBPS SO:
LOAD FIFO WITH 21 BUF. CH
.
CHECK FIFO UNDERFLOWBY TESTING FIFO "O.R."**UNDERFLOW**
CHECK FIFO "I.R.": FULL?
OUTPUT 1 CH. TO FIFO
CHECK "I .R. " : FULL?
OUTPUT 2 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 3 CH. TO FIFO
16KBPS: SERVICE 10 CHARS.CHECK "I.R.": FULL?
OUTPUT 4 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 5 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 6 CH. TO FIFO
CHECK "I.R." : FULL?
OUTPUT 7 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 8 CH. TO FIFO
93
1418 LDAA DATA61419 BITA #080H1420 BEQ I02PT1421 I01YP JSR IOILF1422 LDAA DATA61423 BITA #080H1424 BEQ I02PT'
1425 IOIYQ JSR IOILF1426 *********************
1427 *
1428 *
1429 •
1430 I02PT LDAA PTONRX1431 ANDA #21432 BEQ I02A11433 CLR P20FF1434 JMP I02A1435 I02A1 LDAA P20FF1436 BEQ I02A21437 JMP I03PT1438 I02A2 STAA CHCT21439 STAA CHCT2+11440 STAA XMTRQ21441 STAA UT21442 LDX #01443 STX LGDPT21444 STAA OUFG21445 STAA EMPTY21446 LDAA #2
1447 STAA MSD021448 INCA1449 STAA FLBFG21450 LDAA MRFTA1451 ORAA #2
1452 ANDA #0DFH1453 STAA MRFTA1454 STAA LATCH31455 STAA P20FF1456 LDAA PA1AD1457 ANDA #0FDH1458 STAA PA1AD1459 STAA PIA1AD1460 LDX #SBUFF21461 STX INPT21462 STX OUTPT21463 LDAA SIGACQ1464 ANDA #0FDH1465 STAA SIGACQ1466 STAA LATCH11467 LDX TXPNTR1468 CPX #INPT21469 BNE I02A31470 CLR SOEN1471 I02A3 JMP I03PT1472 *********************
1473 *
1474 * INPUT SERVICE ROU
CHECK "I.R. " : FULL?
OUTPUT 9 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 10 CH. TO FIFO
PORT #2 ON?
PORT IS OFF
RESET FIFO I/O #2
CLEAR "DATA RDY PORT #2"
CLR "SIGNAL ACQ. I/O #2'
***********************************************
94
1475 *
1476 I02LS LDAA #11477 STAA XFER21478 LDAA 102 OBTAIN CHAR1479 LDX INPT2 GET PUT PNTR1480 STAA 0,X PUT IT1481 INX INCR PUT PNTR1482 CPX OUTPT2 TEST OVERFLOW1483 BNE I02LSX BRANCH NO OVERFLOW1484 LDAA MRFTA **OVERFLOW**1485 ANDA #0DFH CLR "XMT ACK"1486 ORAA #2 RESET FIFO1487 STAA MRFTA1488 STAA LATCH31489 STAA OUFG2 SET OUFG FLAG1490 INS REMOVE RETURN1491 INS *
1492 JMP I03PT1493 I02LSX LDAA BPS16K1494 BEQ I02LSA1495 CPX #EBUFF4 16 KBPS1496 BNE I02LSB1497 LDX #SBUFF11498 BRA I02LSB1499 I02LSA CPX #EBUFF2 TEST END OF INPUT1500 BNE I02LSB NO1501 LDX #SBUFF2 GET INITIAL VALUE1502 I02LSB STX INPT21503 LDX CHCT2 GET CHAR COUNT1504 INX INCR COUNT1505 STX CHCT2 PUT BACK1506 RTS1507 **************+***************+**********•
1508 *
1509 *LOAD I/O #2 FIFO WITH 1 CHAR ROUTINE1510 *
1511 I02LF LDX OUTPT21512 LDAA RXINHB1513 BITA #2 IS THE EXTEND TRAN:
1514 BNE I02LF1 YES:RX NOT ALLOWED1515 LDAA 0,X1516 STAA 102+2 OUTPUT CH. TO I/O1517 I02LF1 INX ADJ. OUTPUT PNTR.1518 LDAB BPS16K1519 BEQ I02LFA1520 CPX #EBUFF4 16 KBPS1521 BNE I02LFB1522 LDX #SBUFF11523 BRA I02LFB1524 I02LFA CPX #EBUFF21525 BNE I02LFB1526 LDX #SBUFF21527 I02LFB STX OUTPT21528 LDAA #11529 STAA XFER21530 LDAA FMSD02 TEST MISSING DO1531 BEQ I02LFC
WBRWBRWBR
95
1532 LDX MDOCT21533 DEX1534 STX MDOCT21535 BNE I02LFC1536 LDAA SIGACQ1537 ANDA #0FDH1538 STAA SIGACQ1539 STAA LATCH11540 CLR FMSD021541 I02LFC LDX CHCT2 ADJUST CHAR COUNT1542 DEX1543 STX CHCT21544 BNE I02LFD1545 INS REMOVE RETURN1546 INS1547 JMP I02YE1 GO CHECK UNDERFLOW1548 I02LFD RTS1549 **********************************************************
1550 *
1551 * LOAD FIFO I/O #2 WITH 3 BUF. CH. ROUTINE1552 *
1553 LD2 LDX OUTPT21554 LDAA 0,X1555 STAA 102+21556 LDAA i,x1557 STAA 102+21558 LDAA 2,X1559 STAA 102+21560 INX1561 INX1562 INX1563 STX OUTPT21564 LDX CHCT21565 DEX1566 DEX1567 DEX1568 STX CHCT21569 RTS1570 ***********************************************************
1571 *
1572 ***** BEGIN SERVICING I/O PORT #2 *****
1573 *
1574 I02A LDAA PTONRX RX ONLY?1575 BITA #020H1576 BEQ I02AA1577 JMP I02Y1578 I02AA LDAA DATA11579 BITA #2
1580 BNE I02B1581 JMP I02Y1582 I02B ASLA1583 BPL I02C1584 LDAA XMTRQ21585 BNE I02C1586 LDAA EMPTY21587 BNE I02CA1588 LDX CHCT2 R/T SELECTED: CHECK RCV DON
96
1589 BEQ I02BB1590 I02BA JMP I02YD1591 I02BB LDAA DATA61592 BITA #4
1593 BNE I02BA1594 I02C LDAA XMTRQ21595 BNE I02D1596 LDAA EMPTY21597 BEQ I02E1598 I02CA CLR EMPTY21599 STAA XMTRQ21600 LDX #0
1601 STX LGDPT21602 LDAA MRFTA1603 ORAA #020H1604 STAA MRFTA1605 STAA LATCH31606 I02D LDAA OUFG21607 BNE I02DA1608 JMP I02H1609 I02DA STAA XFER21610 JMP I03PT1611 I02E LDAA DATA51612 ANDA #11613 BEQ I02F1614 JMP I03PT1615 I02F LDAA #1
1616 STAA XMTRQ21617 STAA GROUP
2
1618 STAA XFER21619 STAA FLBFG21620 LDAA SIGACQ1621 ORAA #020H1622 ANDA #0FDH1623 STAA SIGACQ1624 STAA LATCH
1
1625 LDAA MRFTA1626 ORAA #21627 STAA LATCH
3
1628 CLR 102+21629 ANDA #0FDH1630 ORAA #020H1631 STAA MRFTA1632 STAA LATCH31633 LDAA BPS16K1634 BEQ I02FA1635 LDX #SBUFFI1636 STX INPT21637 LDX #SBUFF11638 BRA I02FB1639 102 FA LDX #SBUFF21640 STX INPT21641 LDX #SBUFF21642 102 FB STX OUTPT21643 LDAA #0FFH1644 STAA 0,X1645 STAA 1,X
TEST: I/O FIFO UNDERFLOW
BRANCH: NO UNDERFLOW
GET HERE W/MULTPLETX REQ PER FRAME
SET "TX ACK'
CHECK TX INHIBIT
**INIT FOR PORT #2**
**DATA TRANSMISSION**
SELECT I/O INPUT MODECLR "SIG. ACQ. #2"
TOGGLE FIFO'S RESET
CLR PIA B-SIDE
SET "XMT ACK" I/O #2
+ 6
+ 6
16KBPS
STUFF 6 ELASTICBUFFER CHARACTERS (CC)
97
164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702
I02G
I02GAI02GB
I02H
I02HA
I02HB
102
1
I02K
I02M
I02N2
I02N3
I02N4
STAASTAASTAASTAALDXSTXJMPLDAABEQLDXBRALDXSTXSTXLDXSTXLDAAANDASTAASTAAJMPLDAAANDABEQJMPLDABBEQJMPLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABNEJMPLDAABITABNEJMPJSRLDAA
2,X3,X4,X5,X#6
CHCT2I03PTBPS16K102GA#SBUFF1I02GB#SBUFF2INPT2OUTPT2#0
CHCT2SIGACQ#0FDHSIGACQLATCH1I03PTDATA5#1
I02HAI02YA1FLBFG2I02HB1020DATA6#4
102
1
I02XPI02LSDATA6#4
I02KI02XPI02LSDATA6#4
I02MI02XPI02LSDATA6#4
I02N2I02XPI02LSBPS16KI02N3I02XPDATA6#4
I02N4I02XPI02LSDATA6
16KBPS
CLR "SIGNAL ACQ. I/O #2
CHECK TX INHIBIT
TEST FIFO "O.R.
"
LOAD & STORE 1 CHAR
LOAD & STORE 2 CHAR
LOAD & STORE 3 CHAR
LOAD & STORE 4 CHAR
*16KBPS: ALLOW MORE**l/0 SERVICING*
LOAD & STORE 5 CHAR.
98
1703 BITA #4
1704 BNE I02N51705 JMP I02XP1706 I02N5 JSR I02LS1707 LDAA DATA61708 BITA #4
1709 BNE I02N61710 JMP I02XP1711 I02N6 JSR I02LS1712 LDAA DATA61713 BITA #4
1714 BNE I02N71715 JMP I02XP1716 I02N7 JSR I02LS1717 LDAA DATA61718 BITA #4
1719 BNE I02N81720 JMP I02XP1721 I02N8 JSR I02LS1722 LDAA DATA61723 BITA #4
1724 BNE I02N91725 JMP I02XP1726 I02N9 JSR I02LS1727 LDAA DATA61728 BITA #4
1729 BNE IO2N101730 JMP I02XP1731 IO2N10 JSR I02LS1732 JMP I02XP1733 1020 LDAA DATA61734 BITA #4
1735 BEQ I02XP1736 I02P CLR FLBFG21737 LDAA PA1AD1738 ORAA #2
1739 STAA PA1AD1740 STAA PIA1AD1741 JMP 102
1
1742 I02XP LDAA EMPTY21743 BPL I02XQ1744 LDX INPT21745 STX LGDPT21746 LDAA #11747 STAA EMPTY21748 I02XQ JMP I03PT1749 I02Y LDAA XMTRQ21750 BEQ I02YB1751 LDAA MRFTA1752 ANDA #0DFH1753 STAA MRFTA1754 STAA LATCH
3
1755 CLR XMTRQ21756 LDAA #0FFH1757 STAA EMPTY21758 LDAA PA1AD1759 ANDA #2
LOAD Sc STORE 6 CHAR.
LOAD & STORE 7 CHAR.
LOAD & STORE 8 CHAR.
LOAD & STORE 9 CHAR.
LOAD & STORE 10 CHAR.
LOAD & STORE 11 CHAR,
SET "DATA RDY PORT #2'
**TEST IF SETUP****LAST GOOD DATA PNTR**DO SETUP
CLR "TX ACK'
FIRST TIME THATTX REQ = FALSE
99
1760 BNE 102YA1761 STAA CHCT21762 STAA CHCT2+11763 STAA EMPTY21764 INCA1765 STAA FLBFG21766 LDAA MRFTA1767 ORAA #2
1768 STAA MRFTA1769 STAA LATCH31770 JMP I03PT1771 102YA JMP I02D1772 I02YB LDAA EMPTY21773 BNE I02YA1774 JMP I02YD177 5 102YA1 CLRA1776 STAA XMTRQ21777 STAA EMPTY21778 LDAA PA1AD1779 ANDA #0FDH1780 STAA PIA1AD1781 STAA PA1AD1782 LDAA MRFTA1783 ORAA #21784 ANDA #0DFH1785 STAA MRFTA1786 STAA LATCH31787 I02YC LDAA MRFTA1788 ORAA #2
1789 STAA MRFTA1790 STAA LATCH31791 LDAA SIGACQ1792 ANDA #0DFH1793 STAA SIGACQ1794 STAA LATCH
1
1795 I02YC1 CLR FMSD021796 LDAA #21797 STAA MSD021798 STAA FLBFG21799 JMP I02G1800 I02YD LDAA FLBFG21801 BEQ I02YF1802 STAA XFER21803 LDAA CHCT2+11804 CMPA #101805 BGE I02YE1806 JMP I03PT1807 I02YE CLR FLBFG21808 STAA UT21809 LDAA SIGACQ1810 ANDA #0DFH1811 STAA SIGACQ1812 STAA LATCH
1
1813 LDAA MRFTA1814 ANDA #0FDH1815 STAA MRFTA1816 STAA LATCH3
NO DATA: ABORT INPUT
CLEAR "DATA RDY PORT #2"
RESET I/O #2 FIFOCLR TX ACK I/O #2
**INI 7 I/O PORT****TO OUTPUT****RX BURST DATA**RESET I/O #2 FIFO
SELECT I/O OUTPUT MODE
RCV ELASTIC BUFFER FULL?
SET OUTPUT MODE
CLR REST ON I/O FIFO
100
1817 JSR LD21818 JSR LD21819 LDAA BPS16K1820 BEQ IO2YE01821 JSR LD21822 JSR LD21823 JSR LD21824 JSR LD21825 JSR LD21826 IO2YE0 JMP I03PT1827 I02YE1 LDAA #11828 STAA XFER21829 LDAA UT21830 BNE IO2YE01831 LDAA DATA61832 BITA #4
1833 BEQ I02YC11834 JMP I03PT1835 I02YF LDX CHCT21836 BEQ I02YE11837 LDAA DATA61838 LDAB UT21839 BNE I02YFA1840 BITA #41841 BEQ I02YC11842 I02YFA BITA #040H1843 BEQ I03PT1844 I02YG JSR I02LF1845 LDAA DATA61846 BITA #040H1847 BEQ I03PT1848 I02YH JSR I02LF1849 LDAA DATA61850 BITA #040H1851 BEQ I03PT1852 I02YI JSR I02LF1853 LDAA BPS16K1854 BEQ I03PT1855 I02YJ LDAA DATA61856 BITA #040H1857 BEQ I03PT1858 I02YK JSR I02LF1859 LDAA DATA61860 BITA #040H1861 BEQ I03PT1862 I02YL JSR I02LF1863 LDAA DATA61864 BITA #040H1865 BEQ I03PT1866 I02YM JSR I02LF1867 LDAA DATA61868 BITA #040H1869 BEQ I03PT1870 I02YN JSR I02LF1871 LDAA DATA61872 BITA #040H1873 BEQ I03PT
LOAD FIFO W/6 BUF . CH
.
16 KBPS SO:
LOAD FIFO W/21 BUF. CH.
CHECK FIFO UNDERFLOWBY TESTING FIFO "O.R."**UNDERFLOW**
CHECK FIFO "I.R.": FULL?
OUTPUT 1 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 2 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 3 CH. TO FIFO
16 KBPS: SERVICE 10 CHARSCHECK "I .R. " : FULL?
OUTPUT 4 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 5 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 6 CH. TO FIFO
CHECK "I.R." : FULL?
OUTPUT 7 CH. TO FIFO
CHECK "I.R.": FULL?
101
1874 I02YO JSR I02LF1875 LDAA DATA61876 BITA #040H1877 BEQ I03PT1878 I02YP JSR I02LF1879 LDAA DATA61880 BITA #040H1881 BEQ I03PT1882 I02YQ JSR I02LF1883 *********************
1884 *
1885 *
1886 *
1887 I03PT LDAA PTONRX1888 ANDA #4
1889 BEQ I03A11890 CLR P30FF1891 JMP I03A1892 I03A1 LDAA P30FF1893 BEQ I03A21894 JMP I04PT1895 I03A2 STAA CHCT31896 STAA CHCT3+11897 STAA XMTRQ31898 STAA UT31899 LDX #01900 STX LGDPT31901 STAA OUFG31902 STAA EMPTY31903 LDAA #2
1904 STAA MSD031905 INCA1906 STAA FLBFG31907 LDAA MRFTA1908 ORAA #4
1909 ANDA #0BFH1910 STAA MRFTA1911 STAA LATCH
3
1912 STAA P30FF1913 LDAA PA1AD1914 ANDA #0FBH1915 STAA PA1AD1916 STAA PIA1AD1917 LDX #SBUFF31918 STX INPT31919 STX OUTPT31920 LDAA SIGACQ1921 ANDA #0FBH1922 STAA SIGACQ1923 STAA LATCH
1
1924 LDX TXPNTR1925 CPX #INPT31926 BNE I03A31927 CLR SOEN1928 I03A3 JMP I04PT1929 *********************
1930 *
OUTPUT 8 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 9 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 10 CH. TO FIFO
PORT #3 ON?
PORT IS OFF
RESET FIFO I/O #3CLR XMT ACK I/O #3
CLEAR "DATA RDY PORT #3
CLR "SIGNAL ACQ. I/O #3'
***********************************************
102
193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987
INPUT SERVICE SUBROUTINE
OBTAIN CHARGET PUT PNTRPUT ITINCR PUT PNTRTEST OVERFLOWBRANCH NO OVERFLOW**OVERFLOW**CLR XMT ACK I/O #3
RESET FIFO I/O #3
SET OUFG FLAG*REMOVE RETURN*
I03LS LDAASTAALDAALDXSTAAINXCPXBNELDAAANDAORAASTAASTAASTAAINSINSJMP
103LSX LDAABEQCPXBNELDXBRA
I03LSA CPXBNELDX
I03LSB STXLDXINXSTXRTS
*
*LOAD I/O #3 FIFO WITH 1 CHAR. ROUTINE
#1
XFER3103
INPT30,X
OUTPT3I03LSXMRFTA#0BFH#4
MRFTALATCH
3
OUFG 3
I04PTBPS16KI03LSA#EBUFF4I03LSB#SBUFF1I03LSB#EBUFF3I03LSB#SBUFF3INPT3CHCT3
CHCT3
16 KBPS
TEST END OF INPUTNOGET INITIAL VALUE
GET CHAR. COUNTINCR COUNTPUT BACK
I03LF LDXLDAABITABNELDAASTAA
I03LF1 INXLDABBEQCPXBNELDXBRA
I03LFA CPXBNELDX
I03LFB STXLDAASTAALDAA
OUTPT3RXINHB#4I03LF10,X103+2
BPS16KI03LFA#EBUFF4I03LFB#SBUFF1I03LFB#EBUFF3I03LFB#SBUFF3OUTPT3#1XFER3FMSD03
IS THE EXTEND TRANSMIT FLAG SET?YES:RX NOT ALLOWED
OUTPUT CH. TO I/O #3 FIFOADJ. OUTPUT PNTR.
16KBPS
WBRWBRWBR
TEST MISSING DO
103
1988 BEQ I03LFC1989 LDX MDOCT31990 DEX1991 STX MDOCT31992 BNE I03LFC1993 LDAA SIGACQ1994 ANDA #0FBH1995 STAA SIGACQ1996 STAA LATCH1
1997 CLR FMSD031998 I03LFC LDX CHCT3 ADJ CHAR. COUNT1999 DEX2000 STX CHCT32001 BNE 103 LFD2002 INS REMOVE RETURN2003 INS2004 JMP I03YE1 GO CHECK UNDERFLOW2005 I03LFD RTS2006 *****************************************************
2007 *
2008 *load :FIFO I/O #3 WITH 3 BUF. CH. ROUTINE2009 *
2010 LD3 LDX OUTPT32011 LDAA 0,X2012 STAA 103 + 2
2013 LDAA i,x2014 STAA 103+22015 LDAA 2,X2016 STAA 103+22017 INX2018 INX2019 INX2020 STX 0UTPT32021 LDX CHCT32022 DEX2023 DEX2024 DEX2025 STX CHCT32026 RTS2027 ***********************************************************
2028 *
2029 ***** BEGIN SERVICING I/O PORT #3 *****
2030 *
2031 I03A LDAA PTONRX RX ONLY?2032 BITA #040H2033 BEQ I03AA2034 JMP I03Y2035 I03AA LDAA DATA12036 BITA #4
2037 BNE I03B2038 JMP I03Y2039 I03B ASIA2040 BPL I03C2041 LDAA XMTRQ32042 BNE I03C2043 LDAA EMPTY32044 BNE I03CA
104
2045 LDX CHCT32046 BEQ I03BB2047 I03BA JMP I03YD2048 I03BB LDAA DATA62049 BITA #2
2050 BNE I03BA2051 I03C LDAA XMTRQ32052 BNE I03D2053 LDAA EMPTY32054 BEQ I03E2055 I03CA CLR EMPTY32056 STAA XMTRQ32057 LDX #0
2058 STX LGDPT32059 LDAA MRFTA2060 ORAA #040H2061 STAA MRFTA2062 STAA LATCH32063 I03D LDAA OUFG32064 BNE I03DA2065 JMP I03H2066 I03DA STAA XFER32067 JMP I04PT2068 I03E LDAA DATA52069 ANDA #12070 BEQ I03F2071 JMP I04PT2072 I03F LDAA #12073 STAA XMTRQ32074 STAA GROUP
3
2075 STAA XFER32076 STAA FLBFG32077 LDAA SIGACQ2078 ORAA #040H2079 ANDA #0FBH2080 STAA SIGACQ2081 STAA LATCH12082 LDAA MRFTA2083 ORAA #4
2084 STAA LATCH
3
2085 CLR 103 + 2
2086 ANDA #0FBH2087 ORAA #040H2088 STAA MRFTA2089 STAA LATCH
3
2090 LDAA BPS16K2091 BEQ 103 FA2092 LDX #SBUFF12093 STX INPT32094 LDX #SBUFF12095 BRA I03FB2096 103 FA LDX #SBUFF32097 STX INPT32098 LDX #SBUFF32099 I03FB STX OUTPT32100 LDAA #0FFH2101 STAA 0,X
R/T SELECTED: CHECK RCV DON
TEST: I/O FIFO UNDERFLOW
BRANCH: NO UNDERFLOW
GET HERE W/MULTIPLETX REQ PER FRAME
SET "TX ACK"
CHECK TX INHIBIT
**INIT FOR PORT #3****DATA TRANSMISSION**
SET I/O INPUT MODECLR "SIG. ACQ. #3"
TOGGLE FIFO'S RESET
CLR PIA-B SIDE
SET XMT ACK I/O #3
+ 6 16KBPS
STUFF 6 ELASTICBUFFER CHARACTERS (CC)
105
210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158
I03G
I03GAI03GB
I03H
IQ3HA
I03HB
1031
I03K
I03M
I03N2
I03N3
IQ3N4
STAASTAASTAASTAASTAALDXSTXJMPLDAABEQLDXBRALDXSTXSTXLDXSTXLDAAANDASTAASTAAJMPLDAAANDABEQJMPLDABBEQJMPLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABNEJMPLDAABITABNEJMPJSR
1,
2,
3,
4,
5,
#6CHCT3
'
I04PTBPS16K103GA#SBUFF1I03GB#SBUFF3INPT3OUTPT3#0CHCT3SIGACQ#0FBHSIGACQLATCH1I04PTDATA5#1I03HAI03YA1FLBFG3I03HB1030DATA6#2
1031I03XPI03LSDATA6#2I03KI03XPI03LSDATA6#2I03MI03XPI03LSDATA6#2I03N2I03XPI03LSBPS16KI03N3I03XPDATA6#2I03N4I03XPI03LS
16KBPS
CLR "SIGNAL ACQ. I/O #3"
CHECK TX INHIBIT
TEST FIFO "O.R.
LOAD Sc STORE 1 CHAR
LOAD & STORE 2 CHAR
LOAD & STORE 3 CHAR
LOAD & STORE 4 CHAR
*16KBPS: ALLOW MORE**I/0 SERVICING*
LOAD & STORE 5 CHAR.
106
2159 LDAA DATA62160 BITA #22161 BNE I03N52162 JMP I03XP2163 I03N5 JSR I03LS2164 LDAA DATA62165 BITA #2
2166 BNE I03N62167 JMP I03XP2168 I03N6 JSR I03LS2169 LDAA DATA62170 BITA #22171 BNE I03N72172 JMP I03XP2173 I03N7 JSR I03LS2174 LDAA DATA62175 BITA #22176 BNE I03N82177 JMP I03XP2178 I03N8 JSR I03LS2179 LDAA DATA62180 BITA #22181 BNE I03N92182 JMP I03XP2183 I03N9 JSR I03LS2184 LDAA DATA62185 BITA #22186 BNE IO3N102187 JMP I03XP2188 IO3N10 JSR I03LS2189 JMP I03XP2190 1030 LDAA DATA62191 BITA #22192 BEQ I03XP2193 I03P CLR FLBFG32194 LDAA PA1AD2195 ORAA #42196 STAA PA1AD2197 STAA PIA1AD2198 JMP 10312199 I03XP LDAA EMPTY32200 BPL I03XQ2201 LDX INPT32202 STX LGDPT32203 LDAA #12204 STAA EMPTY32205 I03XQ JMP I04PT2206 I03Y LDAA XMTRQ32207 BEQ I03YB2208 LDAA MRFTA2209 ANDA #0BFH2210 STAA MRFTA2211 STAA LATCH32212 CLR XMTRQ32213 LDAA #0FFH2214 STAA EMPTY32215 LDAA PA1AD
LOAD & STORE 6 CHAR.
LOD & STORE 7 CHAR.
LOAD & STORE 8 CHAR.
LOAD & STORE 9 CHAR.
LOAD & STORE 10 CHAR.
LOAD & STORE 11 CHAR,
SET "DATA RDY PORT #3"
**TEST IF SETUP****LAST GOOD DATA PNTR**DO SETUP
CLR "TX ACK"
FIRST TIME THATTX REQ = FALSE
107
2216 ANDA #42217 BNE I03YA2218 STAA CHCT32219 STAA CHCT3+12220 STAA EMPTY32221 INCA2222 STAA FLBFG32223 LDAA MRFTA2224 ORAA #4
2225 STAA MRFTA2226 STAA LATCH32227 JMP 104 PT2 22 8 I03YA JMP I03D2229 I03YB LDAA EMPTY32230 BNE I03YA2231 JMP I03YD2 2 32 103YA1 CLRA2233 STAA XMTRQ32234 STAA EMPTY32235 LDAA PA1AD2236 ANDA #0FBH2237 STAA PIA1AD2238 STAA PA1AD2239 LDAA MRFTA2240 ORAA #42241 ANDA #0BFH2242 STAA MRFTA2243 STAA LATCH32244 I03YC LDAA MRFTA2245 ORAA #4
2246 STAA MRFTA2247 STAA LATCH
3
2248 LDAA SIGACQ2249 ANDA #0BFH2250 STAA SIGACQ2251 STAA LATCH12252 I03YC1 CLR FMSD032253 LDAA #2
2254 STAA MSD032255 STAA FLBFG32256 JMP I03G2257 I03YD LDAA FLBFG32258 BEQ I03YF2259 STAA XFER32260 LDAA CHCT3+12261 CMPA #102262 BGE I03YE2263 JMP I04PT2264 I03YE CLR FLBFG32265 STAA UT32266 LDAA SIGACQ2267 ANDA #0BFH2268 STAA SIGACQ2269 STAA LATCH12270 LDAA MRFTA2271 ANDA #0FBH2272 STAA MRFTA
NO DATA: ABORT INPUT
CLEAR "DATA RDY PORT #3
RESET I/O #1 FIFOCLR TX ACK I/O #1
**INIT I/O PORT****TO OUTPUT****RX BURST DATA**RESET I/O #3 FIFO
SELECT I/O OUTPUT MODE
RCV ELASTIC BUFFER FULL?
SET OUTPUT MODE
CLR RESET ON I/O FIFO
108
2273 STAA LATCH32274 JSR LD32275 JSR LD32276 LDAA BPS16K2277 BEQ IO3YE02278 JSR LD32279 JSR LD32280 JSR LD32281 JSR LD32282 JSR LD32283 IO3YE0 JMP 104 PT2284 I03YE1 LDAA #12285 STAA XFER32286 LDAA UT32287 BNE IO3YE02288 LDAA DATA62289 BITA #22290 BEQ I03YC12291 JMP I04PT2292 I03YF LDX CHCT32293 BEQ I03YE12294 LDAA DATA62295 LDAB UT32296 BNE I03YFA2297 BITA #22298 BEQ I03YC12299 I03YFA BITA #020H2300 BEQ I04PT2301 I03YG JSR I03LF2302 LDAA DATA62303 BITA #020H2304 BEQ I04PT2305 I03YH JSR I03LF2306 LDAA DATA62307 BITA #020H2308 BEQ I04PT2309 I03YI JSR I03LF2310 LDAA BPS16K2311 BEQ 104PT2312 I03YJ LDAA DATA62313 BITA #020H2314 BEQ 104 PT2315 I03YK JSR I03LF2316 LDAA DATA62317 BITA #020H2318 BEQ I04PT2319 I03YL JSR I03LF2320 LDAA DATA62321 BITA #020H2322 BEQ I04PT2323 I03YM JSR I03LF2324 LDAA DATA62325 BITA #020H2326 BEQ I04PT2327 I03YN JSR I03LF2328 LDAA DATA62329 BITA #020H
LOAD FIFO W/6 BUF . CH
.
LOAD FIFO W/21 BUF. CH
.
CHECK FIFO UNDERFLOWBY TESTING FIFO "O.R."**UNDERFLOW**
CHECK " I . R .
" : FULL?
OUTPUT 1 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 2 CH. TO FIFO
CHECK " I . R .
" : FULL?
OUTPUT 3 CH. TO FIFO
16 KBPS : SERVICE 10 CHARSCHECK "I .R. " : FULL?
OUTPUT 4 CH. TO FIFO
CHECK "I .R. " : FULL?
OUTPUT 5 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 6 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 7 CH. TO FIFO
CHECK "I.R.": FULL?
109
233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386
I03YO
I03YP
I03YQ******
I04PT
BEQ I04PTJSR I03LFLDAA DATA6BITA #020HBEQ I04PTJSR I03LFLDAA DATA6BITA #020HBEQ I04PTJSR I03LF*****************************************************
OUTPUT 8 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 9 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 10 CH. TO FIFO
I04A1
I04A2
I04A3
LDAA PTONRXANDA #8BEQ I04A1CLR P40FFJMP I04ALDAA P40FFBEQ I04A2JMP BSERVSTAA CHCT4STAA CHCT4+1STAA XMTRQ4STAA UT4LDX #0STX LGDPT4STAA OUFG4STAA EMPTY4LDAA #2STAA MSD04INCASTAA FLBFG4LDAA MRFTAORAA #8ANDA #07FHSTAA MRFTASTAA LATCH3STAA P40FFLDAA PA1ADANDA #0F7HSTAA PA1ADSTAA PIA1ADLDX #SBUFF4STX INPT4STX OUTPT4LDAA SIGACQANDA #0F7HSTAA SIGACQSTAA LATCH1LDX TXPNTRCPX #INPT4BNE I04A3CLR SOENJMP BSERV
PORT #4 ON?
PORT IS OFF
RESET FIFO I/O #4CLR XMT ACK
CLEAR "DATA RDY PORT #4
CLR "SIGNAL ACQ. I/O #4"
***********************************************************
10
2387 *
2388 * INPUT SERVICE SUBROUTINE2389 *
2390 I04LS LDAA #12391 STAA XFER42392 LDAA 104 OBTAIN CHAR2393 LDX INPT4 GET PUT PNTR2394 STAA 0,X PUT IT2395 INX INCR PUT PNTR2396 CPX OUTPT4 TEST OVERFLOW2397 BNE I04LSX BRANCH NO OVERFLOW2398 LDAA MRFTA **OVERFLOW**2399 ANDA #07FH CLR XMT ACK2400 ORAA #8 RESET FIFO2401 STAA MRFTA2402 STAA LATCH32403 STAA OUFG4 SET OUFG FLAG2404 INS *REMOVE RETURN2405 INS *
2406 JMP BSERV2407 I04LSX LDAA BPS16K2408 BEQ I04LSA2409 CPX #EBUFF4 16 KBPS2410 BNE I04LSB2411 LDX #SBUFF12412 BRA I04LSB2413 I04LSA CPX #EBUFF4 TEST END OF INPUT2414 BNE I04LSB NO2415 LDX #SBUFF4 GET INITIAL VALUE2416 I04LSB STX INPT42417 LDX CHCT4 GET CHAR COUNT2418 INX INCR COUNT2419 STX CHCT4 PUT BACK2420 RTS2421 ******************************************
2422 *
2423 *LOAD I/O #4 FIFO WITH 1 CHAR. ROUTINE2424 •
2425 I04LF LDX 0UTPT42426 LDAA RXINHB2427 BITA #8 IS THE EXTEND TRAN!
2428 BNE I04LF1 YES : RX NOT ALLOWED2429 LDAA 0,X2430 STAA 104 + 2 OUTPUT CH. TO I/O •
2431 I04LF1 INX ADJ. OUTPUT PNTR.2432 LDAB BPS16K2433 BEQ I04LFA2434 CPX #EBUFF4 16KBPS2435 BNE I04LFB2436 LDX #SBUFF12437 BRA I04LFB2438 I04LFA CPX #EBUFF42439 BNE I04LFB2440 LDX #SBUFF42441 I04LFB STX OUTPT42442 LDAA #1
2443 STAA XFER4
WBRWBRWBR
111
2444 LDAA FMSD04 TEST MISSING DO2445 BEQ I04LFC2446 LDX MDOCT42447 DEX2448 STX MDOCT42449 BNE I04LFC2450 LDAA SIGACQ2451 ANDA #0F7H2452 STAA SIGACQ2453 STAA LATCH
1
2454 CLR FMSD042455 I04LFC LDX CHCT4 ADJUST CHR COUNT2456 DEX2457 STX CHCT42458 BNE I04LFD2459 INS REMOVE RETURN2460 INS2461 JMP 104YE1 GO CHECK UNDERFLOW2462 I04LFD RTS2463 ***********************************************************
2464 *
2465 *load :FIFO I/O #4 WITH 3 BUF. CH. ROUTINE2466 *
2467 LD4 LDX OUTPT42468 LDAA 0,X2469 STAA 104 + 2
2470 LDAA 1,X2471 STAA 104 + 2
2472 LDAA 2,X2473 STAA 104 + 2
2474 INX2475 INX2476 INX2477 STX OUTPT42478 LDX CHCT42479 DEX2480 DEX2481 DEX2482 STX CHCT42483 RTS2484 ********************************************************
2485 *
2486 ***** BEGIN SERVICING I/O PORT #4 *****
2487 *
2488 I04A LDAA PTONRX RX ONLY?2489 BITA #080H2490 BEQ I04AA2491 JMP I04Y2492 I04AA LDAA DATA12493 BITA #82494 BNE I04B2495 JMP I04Y2496 I04B ASLA2497 BPL I04C2498 LDAA XMTRQ42499 BNE I04C2500 LDAA EMPTY4
112
250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557
I04BAI04BB
I04C
I04CA
I04D
104DA
I04E
I04F
104 FA
I04FB
BNELDXBEQJMPLDAABITABNELDAABNELDAABEQCLRSTAALDXSTXLDAAORAASTAASTAALDAABNEJMPSTAAJMPLDAAANDABEQJMPLDAASTAASTAASTAASTAALDAAORAAANDASTAASTAALDAAORAASTAACLRANDAORAASTAASTAALDAABEQLDXSTXLDXBRALDXSTXLDXSTXLDAA
104CACHCT4I04BB104YDDATA6#1
I04BAXMTRQ4I04DEMPTY4I04EEMPTY4XMTRQ4#0
LGDPT4MRFTA#080HMRFTALATCH
3
OUFG4104DAI04HXFER4BSERVDATA5#1I04FBSERV#1XMTRQ4GROUP4XFER4FLBFG4SIGACQ#080H#0F7HSIGACQLATCH1MRFTA#8LATCH3104 + 2#0F7H#080HMRFTALATCH
3
BPS16K104 FA#SBUFFl+6INPT4#SBUFF1104 FB#SBUFF4+6INPT4#SBUFF4OUTPT4#0FFH
R/T SELECTED: CHECK RCV DON
TEST: I/O FIFO UNDERFLOW
BRANCH: NO UNDERFLOW
GET HERE W/MULTIPLETX REQ PER FRAME
SET "TX ACK"
CHECK TX INHIBIT
**INIT FOR PORT #4****DATA TRANSMISSION**
SELECT I/O INPUT MODECLR "SIG. ACQ. #4"
TOGGLE FIFO'S RESET
CLR PIA-B SIDE
SET XMT ACK I/O #4
16KBPS
STUFF 6 ELASTIC
113
255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614
I04G
I04GAI04GB
I04H
I04HA
I04HB
104
1
I04K
I04M
I04N2
I04N3
STAASTAASTAASTAASTAASTAALDXSTXJMPLDAABEQLDXBRALDXSTXSTXLDXSTXLDAAANDASTAASTAAJMPLDAAANDABEQJMPLDABBEQJMPLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABITABNEJMPJSRLDAABNEJMPLDAABITABNEJMP
0,
1,
2,
3,
4,
5,
#6CHCT4BSERVBPS16KI04GA#SBUFF1I04GB#SBUFF4INPT4OUTPT4#0CHCT4SIGACQ#0F7HSIGACQLATCH
1
BSERVDATA5#1I04HAI04YA1FLBFG4I04HB1040DATA6#1104
1
I04XPI04LSDATA6#1I04KI04XPI04LSDATA6#1I04MI04XPI04LSDATA6#1I04N2I04XPI04LSBPS16KI04N3I04XPDATA6#1I04N4I04XP
BUFFER CHARACTERS (CC)
16 KBPS
CLR "SIGNAL ACQ. I/O #4"
CHECK TX INHIBIT
TEST FIFO "O.R.
LOAD & STORE 1 CHAR
LOAD & STORE 2 CHAR
LOAD $ STORE 3 CHAR.
LOAD & STORE 4 CHAR
*16 KBPS: ALLOW MORE**I/0 SERVICING*
14
2615 I04N4 JSR I04LS2616 LDAA DATA62617 BITA #1
2618 BNE I04N52619 JMP I04XP2620 I04N5 JSR I04LS2621 LDAA DATA62622 BITA #1
2623 BNE I04N62624 JMP I04XP2625 I04N6 JSR I04LS2626 LDAA DATA62627 BITA #1
2628 BNE I04N72629 JMP I04XP2630 I04N7 JSR I04LS2631 LDAA DATA62632 BITA #1
2633 BNE I04N82634 JMP I04XP2635 I04N8 JSR I04LS2636 LDAA DATA62637 BITA #12638 BNE I04N92639 JMP I04XP2640 I04N9 JSR I04LS2641 LDAA DATA62642 BITA #12643 BNE IO4N102644 JMP I04XP2645 IO4N10 JSR I04LS2646 JMP I04XP2647 1040 LDAA DATA62648 BITA #12649 BEQ I04XP2650 I04P CLR FLBFG42651 LDAA PA1AD2652 ORAA #82653 STAA PA1AD2654 STAA PIA1AD2655 JMP 10412656 I04XP LDAA EMPTY42657 BPL I04XQ2658 LDX INPT42659 STX LGDPT42660 LDAA #12661 STAA EMPTY42662 I04XQ JMP BSERV2663 I04Y LDAA XMTRQ42664 BEQ I04YB2665 LDAA MRFTA2666 ANDA #0 7FH2667 STAA MRFTA2668 STAA LATCH32669 CLR XMTRQ42670 LDAA #0FFH2671 STAA EMPTY4
LOAD & STORE 5 CHAR.
LOAD & STORE 6 CHAR.
LOAD & STORE 7 CHAR.
LOAD & STORE 8 CHAR.
LOAD & STORE 9 CHAR.
LOAD & STORE 10 CHAR.
LOAD Sc STORE 11 CHAR.
SET "DATA RDY PORT #4
**TEST IF SETUP****LAST GOOD DATA PNTR**DO SETUP
CLR "TX ACK'
FIRST TIME THATTX REQ = FALSE
115
267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272^28
I04YA104YB
104YA1
I04YC
I04YC1
104YD
104YE
LDAAANDABNESTAASTAASTAAINCASTAALDAAORAASTAASTAAJMPJMPLDAABNEJMPCLRASTAASTAALDAAANDASTAASTAALDAAORAAANDASTAASTAALDAAORAASTAASTAALDAAANDASTAASTAACLRLDAASTAASTAAJMPLDAABEQSTAALDAACMPABGEJMPCLRSTAALDAAANDASTAASTAALDAAANDA
PA1AD#8104YACHCT4CHCT4+1EMPTY4
FLBFG4MRFTA#8
MRFTALATCH3BSERVI04DEMPTY4I04YA104YD
XMTRQ4EMPTY4PA1AD#0F7HPIA1ADPA1ADMRFTA#8
#07FHMRFTALATCH3MRFTA#8MRFTALATCH3SIGACQ#07FHSIGACQLATCH1FMSD04#2MSD04FLBFG4I04GFLBFG4104YFXFER4CHCT4+1#10I04YEBSERVFLBFG4UT4SIGACQ#07FHSIGACQLATCH
1
MRFTA#0F7H
NO DATA: ABORT INPUT
CLEAR "DATA RDY PORT #4"
RESET I/O #4 FIFOCLR TX ACK I/O #4
**INIT I/O PORT****TO OUTPUT****RX BURST DATA**RESET I/O #4 FIFO
SELECT I/O OUTPUT MODE
RCV ELASTIC BUFFER FULL?
SET OUTPUT MODE
RESET ON I/O FIFO
272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785
IO4YE0104YE1
I04YF
104YFA
I04YG
104YH
I04YI
I04YJ
104YK
104YL
I04YM
I04YN
STAASTAAJSRJSRLDAABEQJSRJSRJSRJSRJSRJMPLDAASTAALDAABNELDAABITABEQJMPLDXBEQLDAALDABBNEBITABEQBITABEQJSRLDAABITABEQJSRLDAABITABEQJSRLDAABEQLDAABITABEQJSRLDAABITABEQJSRLDAABITABEQJSRLDAABITABEQJSRLDAA
MRFTALATCH3LD4LD4BPS16K104YEOLD4 •
LD4LD4LD4LD4BSERV#1XFER4UT4104YEODATA6#1I04YC1BSERVCHCT4104YE1DATA6UT4104YFA#1I04YC1#010HBSERVI04LFDATA6#010HBSERVI04LFDATA6#010HBSERVI04LFBPS16KBSERVDATA6#010HBSERVI04LFDATA6#010HBSERVI04LFDATA6#010HBSERVI04LFDATA6#010HBSERVI04LFDATA6
LOAD FIFO W/6 BUF. CH
.
16 KBPS SO:
LOAD FIFO W/21 BUF. CH
.
CHECK FIFO UNDERFLOWBY TESTING FIFO "O.R."**UNDERFLOW**
CHECK "I.R. " : FULL?
OUTPUT 1 CHAN. TO FIFO
CHECK "I.R." : FULL?
OUTPUT 2 CH. TO FIFO
CHECK "I.R." : FULL?
OUTPUT 3 CH. TO FIFO
16KBPS: SERVICE 10 CHAR.CHECK "I.R. " : FULL?
OUTPUT 4 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 5 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 6 CH. TO FIFO
CHECK "I.R.": FULL?
OUTPUT 7 CH. TO FIFO
117
278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842
BITABEQ
I04YO JSRLDAABITABEQ
I04YP JSRLDAABITA
I04YQ JSR
#010HBSERVI04LFDATA6#010HBSERVI04LFDATA6#010HI04LF
CHECK "I.R.": FULL?
OUTPUT 8 CH. TO FIFO
CHECK "I.R. " : FULL?
OUTPUT 9 CH. TO FIFO
CHECK "I.R.": FULL?OUTPUT 10 CH. TO FIFO
***********************************************************
BITE SERVICE ROUTINE
BSERV
BSERVA
LDAABITABEQCLRCLRBITABEQLDAABRA
BSERVB
BSERVC
BSERVDBSERVEBSERVF
SERVF1
LDAAASLACOMAANDASTAASTAALDABLDAABEQBITBBNECLRJMPBITBBEQINCLDABLDXBEQLDAABEQCLR
DATA5#8BSERVAIRSBITBITELT#04HBSERVB#0FFHBSERVC
RXINHB
BITELTBITELTLATCH2DATA5TIMEFGBSERVF#010HBSERVETIMEFGSOF#010HBSERVETIMEFGBITELTCHCT1SERVF3XFER1SERVF2XFER1
TEST: SYSTEM BITE RESET
TEST: LAMP TEST
TURN ALL BITE LITES ON
WHEN THE EXTEND TIMER IS SET,IT IS NOT AN ERROR FOR THE PORTOUTPUT TO BE DIFFERENT FROM THEFRAME INPUT, BECAUSE WE AREDISABLING RECEIVE CAPABILITIES
.
THEREFORE WE MUST MASK OUT THEERROR ONLY ON THE PORTS WITHTHE EXTEND TIMER SET. BITS 0-3
IN RXINHB COORESPOND TO PORTS l-<
AND BITS 1-4 COORESPOND TO PORTS1-4 IN LATCH2
.
NO ERROR FOR PORT WITHEXTEND TIMER SET
OUTPUT ALL OTHER ERRORS PRESENT
WBRWBRWBRWBRWBRWBRWBRWBRWBRWBRWBRWBRWBRWBRWBRWBRWBRWBR
TEST 75/16 HZ CLOCK
TEST 75/16 HZ CLOCK
118
2843 BRA BSERVG2844 SERVF2 ORAB #2
2845 BRA BSERVG2846 SERVF3 LDAA XMTRQ12847 BNE SERVF12848 BSERVG LDX CHCT22849 BEQ SERVG32850 SERVG1 LDAA XFER22851 BEQ SERVG22852 CLR XFER22853 BRA BSERVH2854 SERVG2 ORAB #4
2855 BRA BSERVH2856 SERVG3 LDAA XMTRQ22857 BNE SERVG12858 BSERVH LDX CHCT32859 BEQ SERVH32860 SERVH1 LDAA XFER32861 BEQ SERVH22862 CLR XFER32863 BRA BSERVI2864 SERVH2 ORAB #8
2865 BRA BSERVI2866 SERVH3 LDAA XMTRQ32867 BNE SERVH12868 BSERVI LDX CHCT42869 BEQ SERVI32870 SERVI1 LDAA XFER42871 BEQ SERVI22872 CLR XFER42873 BRA BSERVK2874 SERVI2 ORAB #010H2875 BRA BSERVK2876 SERVI3 LDAA XMTRQ42877 BNE SERVI12878 BSERVK STAB BITELT2879 it*******************:
2880 *
2881 * BEGIN SERVICII2882 *
2883 SOF LDAA SOEN2884 BEQ SOF12885 BSR SOFA2886 SOF1 JMP SIF2887 *
2888 SOF2 LDX OUTCHC2889 LDAB #162890 SOF3 LDAA DATA52891 BMI SOF52892 LDAA #033H2893 STAA PIA1BD2894 DEX2895 BNE SOF42896 CLRA2897 STAA SOEN2898 STAA SELFTT2899 STX OUTCHC
I/O #1 BITE ERROR
NO DATA AFTER TX REQ?
I/O #2 BITE ERROR
NO DATA AFTER TX REQ?
I/O #3 BITE ERROR
NO DATA AFTER TX REQ?
I/O #4 BITE ERROR
NO DATA AFTER TX REQ?
**•*•********•******•••*********•-*•*•*•***********
*TX SELF TEST ROUTINE*
FIFO RDY?
OUTPUT TEST CHAR.
DONE SELF TEST TX
119
2900 RTS2901 SOF4 DECB2902 BNE SOF32903 SOF5 STX OUTCHC2904 RTS2905 *
2906 SOFA LDAA SELFTT2907 BNE SOF22908 LDX TXPNTR2909 LDAA DATA52910 BITA #1
2911 BEQ SOFAA2912 CLR SOEN2913 RTS2914 SOFAA LDX 2,X2915 STX TBPNTR2916 LDX TXPNTR2917 LDX 4,X2918 STX TXCHCT2919 LDX TXPNTR2920 LDX 14, X
2921 STX TXLGDP2922 LDAA GRP1FG2923 BNE SOFB2924 JMP SOFY2925 SOFB LDX FILLCT2926 LDAB #0FFH2927 LDAA DATA52928 BPL SOFBA2929 STX FILLCT2930 RTS2931 SOFBA STAB PIA1BD2932 DEX2933 BNE SOFBB2934 CLR GRP1FG2935 JMP SOFD+22936 SOFBB LDAA DATA52937 BPL SOFBC2938 STX FILLCT2939 RTS2940 SOFBC STAB PIA1BD2941 DEX2942 BNE SOFBD2943 CLR GRP1FG2944 JMP SOFE+22945 SOFBD LDAA DATA52946 BPL SOFBE2947 STX FILLCT2948 RTS2949 SOFBE STAB PIA1BD2950 DEX2951 BNE SOFBF2952 CLR GRP1FG2953 JMP SOFF+22954 SOFBF LDAA DATA52955 BPL SOFBG2956 STX FILLCT
TX SELF TEST?
CHECK TX INHIBIT
TX INHIBIT: ABORT
SETUP L.G.D. PNTR FORTX BURST SERVICE
FILL PATTERN BEFORE DATAFIFO RDY? (DATA5-H=LOW)
OUTPUT FILL CHAR #1
FIFO READY?
OUTPUT FILL CHAR #2
FIFO READY?
OUTPUT FILL CHAR #3
FIFO READY?
120
2957 RTS2958 SOFBG STAB PIA1BD2959 DEX2960 BNE SOFBH2961 CLR GRP1FG2962 JMP SOFG+22963 SOFBH LDAA DATA52964 BPL SOFBI2965 STX FILLCT2966 RTS2967 SOFBI STAB PIA1BD2968 DEX2969 BNE SOFBJ2970 CLR GRP1FG2971 JMP SOFH+22972 SOFBJ LDAA DATA52973 BPL SOFBK2974 STX FILLCT2975 RTS2976 SOFBK STAB PIA1BD2977 DEX2978 BNE SOFBL2979 CLR GRP1FG2980 JMP SOFI+22981 SOFBL LDAA DATA52982 BPL SOFBM2983 STX FILLCT2984 RTS2985 SOFBM STAB PIA1BD2986 DEX2987 BNE SOFBN2988 CLR GRP1FG2989 JMP SOFJ+22990 SOFBN LDAA DATA52991 BPL SOFBO2992 STX FILLCT2993 RTS2994 SOFBO STAB PIA1BD2995 DEX2996 BNE SOFBP2997 CLR GRP1FG2998 JMP SOFK+22999 SOFBP LDAA DATA53000 BPL SOFBQ3001 STX FILLCT3002 RTS3003 SOFBQ STAB PIA1BD3004 DEX3005 BNE SOFBR3006 CLR GRP1FG3007 JMP SOFL+23008 SOFBR LDAA DATA53009 BPL SOFBS3010 STX FILLCT3011 RTS3012 SOFBS STAB PIA1BD3013 DEX
OUTPUT FILL CHAR #4
FIFO READY?
OUTPUT FILL CHAR #5
FIFO READY?
OUTPUT FILL CHAR #6
FIFO READY?
OUTPUT FILL CHAR #7
FIFO READY?
OUTPUT FILL CHAR #8
FIFO READY?
OUTPUT FILL CHAR #9
FIFO READY?
OUTPUT FILL CHAR #10
121
3014 BNE SOFBT3015 CLR GRP1FG3016 JMP SOFM+23017 SOFBT LDAA DATA53018 BPL SOFBU3019 STX FILLCT3020 RTS3021 SOFBU STAB PIA1BD3022 DEX3023 BNE SOFBV3024 CLR GRP1FG3025 JMP SOFN+23026 SOFBV LDAA DATA53027 BPL SOFBW3028 STX FILLCT3029 RTS3030 SOFBW STAB PIA1BD3031 DEX3032 BNE SOFBX3033 CLR GRP1FG3034 JMP SOFO+23035 SOFBX LDAA DATA53036 BPL SOFBY3037 STX FILLCT3038 RTS3039 SOFBY STAB PIA1BD3040 DEX3041 BNE SOFBZ3042 CLR GRP1FG3043 JMP SOFP+23044 SOFBZ LDAA DATA53045 BPL SOFB13046 STX FILLCT3047 RTS3048 SOFB1 STAB PIA1BD3049 DEX3050 BNE SOFB23051 CLR GRP1FG3052 JMP SOFQ+23053 SOFB2 LDAA DATA53054 BPL SOFB33055 STX FILLCT3056 RTS3057 SOFB3 STAB PIA1BD3058 DEX3059 BNE SOFB43060 CLR GRP1FG3061 JMP SOFR+23062 SOFB4 LDAA DATA53063 BPL SOFB53064 STX FILLCT3065 RTS3066 SOFB5 STAB PIA1BD3067 DEX3068 BNE SOFB63069 CLR GRP1FG3070 SOFB6 STX FILLCT
FIFO READY?
OUTPUT FILL CHAR #11
FIFO READY?
OUTPUT FILL CHAR #12
FIFO READY?
OUTPUT FILL CHAR #13
FIFO READY?
OUTPUT FILL CHAR #14
FIFO READY?
OUTPUT FILL CHAR #15
FIFO READY?
OUTPUT FILL CHAR #16
122
3071 RTS3072 SOFC LDAA DATA5 FIFO READY?3073 BPL SOFCA3074 JMP SOFS3075 SOFCA LDX TXCHCT3076 BNE SOFCB3077 LDAA #0FFH GET STUFF CHAR3078 STAA TXEND3079 LDX TXPNTR3080 STAA 13,
X
SET PORT'S OUFG3081 BRA SOFCD3082 SOFCB DEX3083 STX TXCHCT3084 LDX TBPNTR3085 LDAA 0,X GET BUFF CHAR3086 INX3087 CPX TXUVAL ADJ BUFF PNTRS3088 BNE SOFCC3089 LDX TXLVAL3090 SOFCC STX TBPNTR3091 CPX TXLGDP LAST GOOD DATA?3092 BNE SOFCD3093 LDX #0 YES3094 STX TXLGDP3095 STAB TXDONE3096 SOFCD STAA PIA1BD OUTPUT CHAR #13097 LDX OUTCHC3098 DEX3099 BNE SOFD3100 JMP SOFT3101 SOFD STX OUTCHC3102 LDAA DATA5 FIFO READY?3103 BPL SOFDA3104 JMP SOFS3105 SOFDA LDX TXCHCT3106 BNE SOFDB3107 LDAA #0FFH GET STUFF CHAR3108 STAA TXEND3109 LDX TXPNTR3110 STAA 13,
X
3111 BRA SOFDD3112 SOFDB DEX3113 STX TXCHCT3114 LDX TBPNTR3115 LDAA 0,X GET BUFF CHAR3116 INX3117 CPX TXUVAL ADJ BUFF PNTRS3118 BNE SOFDC3119 LDX TXLVAL3120 SOFDC STX TBPNTR3121 CPX TXLGDP LAST GOOD DATA?3122 BNE SOFDD3123 LDX #0 YES3124 STX TXLGDP3125 STAB TXDONE3126 SOFDD STAA PIA1BD OUTPUT CHAR #23127 LDX OUTCHC
123
3128 DEX3129 BNE SOFE3130 JMP SOFT3131 SOFE STX OUTCHC3132 LDAA DATA5 FIFO READY?3133 BPL SOFEA3134 JMP SOFS3135 SOFEA LDX TXCHCT3136 BNE SOFEB3137 LDAA #0FFH GET STUFF CHAR3138 STAA TXEND3139 LDX TXPNTR3140 STAA 13,
X
SET PORT ' S UOFG3141 BRA SOFED3142 SOFEB DEX3143 STX TXCHCT3144 LDX TBPNTR3145 LDAA 0,X GET BUFF CHAR3146 INX3147 CPX TXUVAL ADJ BUFF PNTRS3148 BNE SOFEC3149 LDX TXLVAL3150 SOFEC STX TBPNTR3151 CPX TXLGDP LAST GOOD DATA?3152 BNE SOFED3153 LDX #0 YES3154 STX TXLGDP3155 STAB TXDONE3156 SOFED STAA PIA1BD OUTPUT CHAR #33157 LDX OUTCHC3158 DEX3159 BNE SOFF3160 JMP SOFT3161 SOFF STX OUTCHC3162 LDAA DATA5 FIFO READY?3163 BPL SOFFA3164 JMP SOFS3165 SOFFA LDX TXCHCT3166 BNE SOFFB3167 LDAA #0FFH GET STUFF CHAR3168 STAA TXEND3169 LDX TXPNTR3170 STAA 13,
X
SET PORT'S OUFG3171 BRA SOFFD3172 SOFFB DEX3173 STX TXCHCT3174 LDX TBPNTR3175 LDAA 0,X GET BUFF CHAR3176 INX3177 CPX TXUVAL ADJ BUFF PNTRS3178 BNE SOFFC3179 LDX TXLVAL3180 SOFFC STX TBPNTR3181 CPX TXLGDP LAST GOOD DATA?3182 BNE SOFFD3183 LDX #0 YES3184 STX TXLGDP
124
318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241
SOFFD
SOFG
SOFGA
SOFGB
SOFGC
SOFGD
SOFH
SOFHA
SOFHB
SOFHC
STABSTAALDXDEXBNEJMPSTXLDAABPLJMPLDXBNELDAASTAALDXSTAABRADEXSTXLDXLDAAINXCPXBNELDXSTXCPXBNELDXSTXSTABSTAALDXDEXBNEJMPSTXLDAABPLJMPLDXBNELDAASTAALDXSTAABRADEXSTXLDXLDAAINXCPXBNELDXSTXCPX
TXDONEPIA1BDOUTCHC
SOFGSOFTOUTCHCDATA5SOFGASOFSTXCHCTSOFGB#0FFHTXENDTXPNTR13,XSOFGD
TXCHCTTBPNTR0,X
TXUVALSOFGCTXLVALTBPNTRTXLGDPSOFGD#0TXLGDPTXDONEPIA1BDOUTCHC
SOFHSOFTOUTCHCDATA5SOFHASOFSTXCHCTSOFHB#0FFHTXENDTXPNTR13,
X
SOFHD
TXCHCTTBPNTR0,X
TXUVALSOFHCTXLVALTBPNTRTXLGDP
OUTPUT CHAR #4
FIFO READY?
GET STUFF CHAR
SET PORT ' S OUFG
GET BUFF CHAR
ADJ BUFF PNTRS
LAST GOOD DATA?
YES
OUTPUT CHAR #5
FIFO READY?
GET STUFF CHAR
SET PORT'S OUFG
GET BUFF CHAR
ADJ BUFF PNTRS
LAST GOOD DATA?
125
3242 BNE SOFHD3243 LDX #0 YES3244 STX TXLGDP3245 STAB TXDONE3246 SOFHD STAA PIA1BD OUTPUT CHAR #63247 LDX OUTCHC3248 DEX3249 BNE SOFI3250 JMP SOFT3251 SOFI STX OUTCHC3252 LDAA DATA5 FIFO READY?3253 BPL SOFIA3254 JMP SOFS3255 SOFIA LDX TXCHCT3256 BNE SOFIB3257 LDAA #0FFH GET STUFF CHAR3258 STAA TXEND3259 LDX TXPNTR3260 STAA 13,
X
SET PORT ' S OUFG3261 BRA SOFID3262 SOFIB DEX3263 STX TXCHCT3264 LDX TBPNTR3265 LDAA 0,X GET BUFF CHAR3266 INX3267 CPX TXUVAL ADJ BUFF PNTRS3268 BNE SOFIC3269 LDX TXLVAL3270 SOFIC STX TBPNTR3271 CPX TXLGDP LAST GOOD DATA?3272 BNE SOFID3273 LDX #0 YES3274 STX TXLGDP3275 STAB TXDONE3276 SOFID STAA PIA1BD OUTPUT CHAR #73277 LDX OUTCHC3278 DEX3279 BNE SOFJ3280 JMP SOFT3281 SOFJ STX OUTCHC3282 LDAA DATA5 FIFO READY?3283 BPL SOFJA3284 JMP SOFS3285 SOFJA LDX TXCHCT3286 BNE SOFJB3287 LDAA #0FFH GET STUFF CHAR3288 STAA TXEND3289 LDX TXPNTR3290 STAA 13,
X
SET PORT'S OUFG3291 BRA SOFJD3292 SOFJB DEX3293 STX TXCHCT3294 LDX TBPNTR3295 LDAA 0,X GET BUFF CHAR3296 INX3297 CPX TXUVAL ADJ BUFF PNTRS3298 BNE SOFJC
126
3299 LDX TXLVAL3300 SOFJC STX TBPNTR3301 CPX TXLGDP LAST GOOD DATA?3302 BNE SOFJD3303 LDX #0 YES3304 STX TXLGDP3305 STAB TXDONE3306 SOFJD STAA PIA1BD OUTPUT CHAR #8
3307 LDX OUTCHC3308 DEX3309 BNE SOFK3310 JMP SOFT3311 SOFK STX OUTCHC3312 LDAA DATA5 FIFO READY?3313 BPL SOFKA3314 JMP SOFS3315 SOFKA LDX TXCHCT3316 BNE SOFKB3317 LDAA #0FFH GET STUFF CHAR3318 STAA TXEND3319 LDX TXPNTR3320 STAA 13,
X
SET PORT'S OUFG3321 BRA SOFKD3322 SOFKB DEX3323 STX TXCHCT3324 LDX TBPNTR3325 LDAA 0,X GET BUFF CHAR3326 INX3327 CPX TXUVAL ADJ BUFF PNTRS3328 BNE SOFKC3329 LDX TXLVAL3330 SOFKC STX TBPNTR3331 CPX TXLGDP LAST GOOD DATA?3332 BNE SOFKD3333 LDX #0 YES3334 STX TXLGDP3335 STAB TXDONE3336 SOFKD STAA PIA1BD OUTPUT CHAR #93337 LDX OUTCHC3338 DEX3339 BNE SOFL3340 JMP SOFT3341 SOFL STX OUTCHC3342 LDAA DATA5 FIFO READY?3343 BPL SOFLA3344 JMP SOFS3345 SOFLA LDX TXCHCT3346 BNE SOFLB3347 LDAA #0FFH GET STUFF CHAR3348 STAA TXEND3349 LDX TXPNTR3350 STAA 13,
X
SET PORT ' S OUFG3351 BRA SOFLD3352 SOFLB DEX3353 STX TXCHCT3354 LDX TBPNTR3355 LDAA 0,X GET BUFF CHAR
127
3356 INX3357 CPX TXUVAL ADJ BUFF PNTRS3358 BNE SOFLC3359 LDX TXLVAL3360 SOFLC STX TBPNTR3361 CPX TXLGDP LAST GOOD DATA?3362 BNE SOFLD3363 LDX #0 YES3364 STX TXLGDP3365 STAB TXDONE3366 SOFLD STAA PIA1BD OUTPUT CHAR #103367 LDX OUTCHC3368 DEX3369 BNE SOFM3370 JMP SOFT3371 SOFM STX OUTCHC3372 LDAA DATA5 FIFO READY?3373 BPL SOFMA3374 JMP SOFS3375 SOFMA LDX TXCHCT3376 BNE SOFMB3377 LDAA #0FFH GET STUFF CHAR3378 STAA TXEND3379 LDX TXPNTR3380 STAA 13,
X
SET PORT ' S OUFG3381 BRA SOFMD3382 SOFMB DEX3383 STX TXCHCT3384 LDX TBPNTR3385 LDAA 0,X GET BUFF CHAR3386 INX3387 CPX TXUVAL ADJ BUFF PNTRS3388 BNE SOFMC3389 LDX TXLVAL3390 SOFMC STX TBPNTR3391 CPX TXLGDP LAST GOOD DATA?3392 BNE SOFMD3393 LDX #0 YES3394 STX TXLGDP3395 STAB TXDONE3396 SOFMD STAA PIA1BD OUTPUT CHAR #113397 LDX OUTCHC3398 DEX3399 BNE SOFN3400 JMP SOFT3401 SOFN STX OUTCHC3402 LDAA DATA5 FIFO READY?3403 BPL SOFNA3404 JMP SOFS3405 SOFNA LDX TXCHCT3406 BNE SOFNB3407 LDAA #0FFH GET STUFF CHAR3408 STAA TXEND3409 LDX TXPNTR3410 STAA 13,
X
SET PORT' OUFG3411 BRA SOFND3412 SOFNB DEX
128
3413 STX TXCHCT3414 LDX TBPNTR3415 LDAA 0,X GET BUFF CHAR3416 INX3417 CPX TXUVAL AND BUFF PNTRS3418 BNE SOFNC3419 LDX TXLVAL3420 SOFNC STX TBPNTR3421 CPX TXLGDP LAST GOOD DATA?3422 BNE SOFND3423 LDX #0 YES3424 STX TXLGDP3425 STAB TXDONE3426 SOFND STAA PIA1BD OUTPUT CHAR #123427 LDX OUTCHC3428 DEX3429 BNE SOFO3430 JMP SOFT3431 SOFO STX OUTCHC3432 LDAA DATA5 FIFO READY?3433 BPL SOFOA3434 JMP SOFS3435 SOFOA LDX TXCHCT3436 BNE SOFOB3437 LDAA #0FFH GET STUFF CHAR3438 STAA TXEND3439 LDX TXPNTR3440 STAA 13,
X
SET PORT ' S OUFG3441 BRA SOFOD3442 SOFOB DEX3443 STX TXCHCT3444 LDX TBPNTR3445 LDAA 0,X GET BUFF CHAR3446 INX3447 CPX TXUVAL ADJ BUFF PNTRS3448 BNE SOFOC3449 LDX TXLVAL3450 SOFOC STX TBPNTR3451 CPX TXLGDP LAST GOOD DATA?3452 BNE SOFOD3453 LDX #0 YES3454 STX TXLGDP3455 STAB TXDONE3456 SOFOD STAA PIA1BD OUTPUT CHAR #133457 LDX OUTCHC3458 DEX3459 BNE SOFP3460 JMP SOFT3461 SOFP STX OUTCHC3462 LDAA DATA5 FIFO READY?3463 BPL SOFPA3464 JMP SOFS3465 SOFPA LDX TXCHCT3466 BNE SOFPB3467 LDAA #0FFH GET BUFF CHAR3468 STAA TXEND3469 LDX TXPNTR
129
3470 STAA 13,
X
SET PORT'S OUFG3471 BRA SOFPD3472 SOFPB DEX3473 STX TXCHCT3474 LDX TBPNTR3475 LDAA 0,X GET BUF CHAR3476 INX3477 CPX TXUVAL ADJ BUFF PNTRS3478 BNE SOFPC3479 LDX TXLVAL3480 SOFPC STX TBPNTR3481 CPX TXLGDP LAST GOOD DATA?3482 BNE SOFPD3483 LDX #0 YES3484 STX TXLGDP3485 STAB TXDONE3486 SOFPD STAA PIA1BD OUTPUT CHAR #143487 LDX OUTCHC3488 DEX3489 BNE SOFQ3490 JMP SOFT3491 SOFQ STX OUTCHC3492 LDAA DATA5 FIFO READY?3493 BPL SOFQA3494 JMP SOFS3495 SOFQA LDX TXCHCT3496 BNE SOFQB3497 LDAA #0FFH GET STUFF CHAR3498 STAA TXEND3499 LDX TXPNTR3500 STAA 13,
X
SET PORT ' S OUFG3501 BRA SOFQD3502 SOFQB DEX3503 STX TXCHCT3504 LDX TBPNTR3505 LDAA 0,X GET BUFF CHAR3506 INX3507 CPX TXUVAL ADJ BUFF PNTRS3508 BNE SOFQC3509 LDX TXLVAL3510 SOFQC STX TBPNTR3511 CPX TXLGDP LAST GOOD DATA?3512 BNE SOFQD3513 LDX #0 YES3514 STX TXLGDP3515 STAB TXDONE3516 SOFQD STAA PIA1BD OUTPUT CHAR #153517 LDX OUTCHC3518 DEX3519 BEQ SOFT3520 SOFR STX OUTCHC3521 LDAA DATA5 FIFO READY?3522 BPL SOFRA3523 JMP SOFS3524 SOFRA LDX TXCHCT3525 BNE SOFRB3526 LDAA #0FFH GET STUFF CHAR
130
35273528352935303531 SOFRB35323533353435353536353735383 53 9 SOFRC354035413542354335443 54 5 SOFRD35463547354835493550 SOFS35513552355335543555355635573558355935603561356235633564 SOFT35653 566 SOFTA35673568356935703571357235733574357535763577357835793580358135823583
STAALDXSTAABRADEXSTXLDXLDAAINXCPXBNELDXSTXCPXBNELDXSTXSTABSTAALDXDEXBEQSTXLDXLDAALDABSTAASTABLDAALDABSTAASTABLDAALDABSTAASTABRTSLDAABEQCLRBSTABSTABSTABSTABLDAAANDASTAASTAALDXSTABSTABSTABSTABSTABLDABSTABLDAA
TXENDTXPNTR13,
X
SOFRD
TXCHCTTBPNTR0,X
TXUVALSOFRCTXLVALTBPNTRTXLGDPSOFRD#0TXLGDPTXDONEPIA1BDOUTCHC
SOFTOUTCHCTXPNTRTXCHCTTXCHCT+14,X5,XTBPNTRTBPNTR+12,X3,XTXLGDPTXLGDP+114,
X
15,
X
TXENDSOFTB
TXENDTXDONETXCHCTTXCHCT+1XMASKPA1ADPA1ADPIA1ADTXPNTR8,X13,
X
6,X4,X5,X#3
7,XMASKR
SET PORT'S OUFG
GET BUFF CHAR
ADJ BUFF PNTRS
LAST GOOD DATA?
YES
OUTPUT CHAR #16
STORE BUFF PNTRS
RESTORE BUFF CHAR COUNT
RESTORE BUFF OUTPUT PNTR
RESTORE L.G.D. PNTR
CLR "DATA RDY PORT-
CLR TX REQ FLAGCLR OUFGCLR EMPTYCLR CHCT
SET FLBFGTX ACK OF I/O PORT
131
358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640
SOFTB
SOFU
SOFY
SOFYXXSOFYA
SOFYA1
SOFYB
SOFYB1
SOFYC
SOFYC1
SOFYD
SOFYD1
ANDALDABCOMBSTABORAASTAASTAABRALDAABEQLDAACOMAANDABEQCLRASTAABRALDABLDAABNELDAABEQLDAACOMAANDABEQCLRASTAAJMPLDXLDAABPLRTSSTABDEXBEQLDAABPLSTXRTSSTABDEXBEQLDAABPLSTXRTSSTABDEXBNEJMPLDAABPLSTXRTSSTABDEX
MRFTAXMASK
XMASKXMASKMRFTALATCH3SOFUTXDONESOFUXMASK
DATA1SOFTA
SOENSOFS#0FFHTXENDSOFYATXDONESOFYXXXMASK
DATA1SOFYXX
TXDONESOFCOUTCHCDATA5SOFYA1
AND SET FIFO'S MR
SOFTADATA5SOFYB1OUTCHC
SOFTADATA5SOFYC1OUTCHC
TEST PORT'S TX REQ INPUT
TEST PORT'S TX REQ INPUT
BRANCH IF TX REQ =
GET HERE WITH MULTIPLETX REQS. PER FRAME
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #1
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #2
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #3
SOFYDSOFTADATA5SOFYD1OUTCHC
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #4
132
3641 BNE3642 JMP364 3 SOFYE LDAA3644 BPL3645 STX3646 RTS3 64 7 SOFYE
1
STAB3648 DEX3649 BNE3650 JMP3651 SOFYF LDAA3652 BPL3653 STX3654 RTS3 655 SOFYF1 STAB3656 DEX3657 BNE3658 JMP3659 SOFYG LDAA3660 BPL3661 STX3662 RTS3663 SOFYG1 STAB3664 DEX3665 BNE3666 JMP366 7 SOFYH LDAA3668 BPL3669 STX3670 RTS3671 SOFYH1 STAB3672 DEX3673 BNE3674 JMP3675 SOFYI LDAA3676 BPL3677 STX3678 RTS367 9 SOFYI
1
STAB3680 DEX
SOFYESOFTADATA5SOFYE1OUTCHC
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #5
SOFYFSOFTADATA5SOFYF1OUTCHC
PIA1BD
SOFYGSOFTADATA5SOFYG1OUTCHC
FIFO RDY?
OUTPUT FILL CHAR #6
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #7
SOFYHSOFTADATA5SOFYH1OUTCHC
PIA1BD
SOFYISOFTADATA5SOFYHOUTCHC
FIFO RDY?
OUTPUT FILL CHAR #8
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #9
3681 BNE SOFYJ3682 JMP SOFTA3683 SOFYJ LDAA DATA5 FIFO RDY?3684 BPL SOFYJ13685 STX OUTCHC3686 RTS3687 SOFYJ1 STAB PIA1BD OUTPUT FI3688 DEX3689 BNE SOFYK3690 JMP SOFTA3691 SOFYK LDAA DATA5 FIFO RDY?3692 BPL SOFYK13693 STX OUTCHC3694 RTS3695 SOFYK1 STAB PIA1BD OUTPUT FI3696 DEX3697 BNE SOFYL
3698369937003701370237033704370537063" 7
3'3
3709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754
SOFYL
SOFYL1
SOFYM
SOFYM1
SOFYN
SOFYN1
SOFYO
SOFYOl
SOFYP
SOFYP1
JMPLDAABPLSTXRTSSTABDEXBNEJMPLDAABPLSTXRTSSTABDEXBNEJMPLDAABPLSTXRTSSTABDEXBNEJMPLDAABPLSTXRTSSTABDEXBNEJMPLDAABPLSTXRTSSTABDEXBNEJMP
SOFTADATA5SOFYL1OUTCHC
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #12
SOFYMSOFTADATA5SOFYM1OUTCHC
PIA1BD
SOFYNSOFTADATA5SOFYN1OUTCHC
SOFYOSOFTADATA5SOFYOlOUTCHC
PIA1BD
SOFYPSOFTADATA 5
SOFYP1OUTCHC
PIA1BD
SOFYQSOFTA
FIFO RDY?
OUTPUT FILL CHAR #13
FIFO RDY?
PIA1BD OUTPUT FILL CHAR #14
FIFO RDY?
OUTPUT FILL CHAR #15
FIFO RDY?
OUTPUT FILL CHAR #16
SOFYQ STX OUTCHCRTS
***************************** + ** + *************••**********•**
* BEGIN SERVICING SYSTEM INPUT FIFO*
*
SIF LDAA SIENBNE SIFAJMP TDMA
INCHCSIF1 LDXLDAB #16
SIF2 LDAA DATA1BPL SIF6LDAA DATA2
*RX SELF iiST ROUTINE*
CHAR IN RX FIFO?
LOAD CHAR
134
3755 CMPA #033H3756 BEQ SIF33757 STAB STERR3758 SIF3 DEX3759 BNE SIF53760 CLRA3761 STAA SIEN3762 STAA SELFTR3763 STX INCHC3764 LDAA PA1AD3765 LDAB STERR3766 BNE SIF3A3767 ANDA #0 7FH3768 BRA SIF43769 SIF3A ORAA #080H3770 SIF4 STAA PA1AD3771 STAA PIA1AD3772 ANDA #080H3773 ORAA BITELT3774 STAA BITELT3775 STAA LATCH23776 CLR STERR3777 JMP TDMA3778 SIF5 DECB3779 BNE SIF23780 SIF6 STX INCHC3781 JMP TDMA3782 *
3783 SIFA LDAA SELFTR3784 BNE SIF13785 LDAA INPTRC3786 BEQ SIFA1A3787 LDX RCRXPT3788 SIFR LDAA DATA13789 BMI SIFRA3790 SIFR1 STX RCRXPT3791 JMP TDMA3792 SIFRA LDAA DATA23793 STAA
; X3794 INX3795 CPX #ERCRX3796 BNE SIFR3797 SEI3798 LDX #SRCRX3799 LDAA o,x3800 STAA ACIAD3801 INX3802 LDAA #0BDH3803 STAA AC IACS3804 STAA TXIRFG3805 STX RCRXPT3806 CLR SIEN3807 CLI3808 JMP TDMA3809 ********************
3810 *
3811 *FILL MISSING RX BUR:
CORRECT CHARACTER?
CLR DBP SELF TEST FAIL
SET DBP SELF TEST FAIL
ADJUST SELF TESTFAIL BITE LITE
RX SELF TEST?
CHAR IN INPUT FIFO?
LOAD & STORE FIFO CHAR
BUFFER FULL?
LOAD ACIA WITH 1
R/CCOW RX CHARS
.
135
381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868
SIFRBSIFRC
SIFRD
SIFRE
SIFA1A
SIFA1C
SIFA1B
SIFA1
SIFA2
LDABLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNECLRJMPSTXDECBBNEJMP
LDXLDAABNELDAAANDABNECLRCLRJMPLDXSTXLDXLDXSTXLDAABNELDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNE
#16#0FFHRBPNTR0,X
RXUVALSIFRDRXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFREFILLFGSIFQINCHC
SIFRCSIFP
RXPNTR8,XSIFA1CPTONRXMASKIOSIFA1BSIENFILLFGTDMA0,XRBPNTRRXPNTR4,XRBCHCTFILLFGSIFRBDATA1SIFA1TDMADATA2RBPNTR0,X
RXUVALSIFA2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFB
INIT STORE COUNTER
ADJ PNTRS
TEST FIFO CH CNT
DEC STORE COUNTER
SETUP RCV PNTRSTEST PORT'S TX REQ FLAG
TEST IF PORT IS ON
*ABORT RX BURST: TX REQ**OR PORT IS OFF*
FILL BURST WITH "FF"?
LOAD Sc STORE CHAR #1
ADJ PNTRS
TEST FIFO CH CNT
136
386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925
SIFB
SIFB1
SIFB2
SIFC
SIFC1
SIFC2
SIFD
SIFD1
SIFD2
JMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNEJMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNEJMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNE
SIFQINCHCDATA1SIFB1SIFPDATA2RBPNTR0,X
RXUVALSIFB2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFCSIFQINCHCDATA1SIFC1SIFPDATA2RBPNTR0,X
RXUVALSIFC2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFDSIFQINCHCDATA1SIFD1SIFPDATA2RBPNTR0,X
RXUVALSIFD2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFE
LOAD & STORE FIFO CHAR #2
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD & STORE FIFO CHAR #3
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD Sc STORE FIFO CHAR #4
ADJ PNTRS
TEST FIFO CHAR COUNT
137
392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982
SIFE
SIFE1
SIFE2
SIFF
SIFF1
SIFF2
SIFG
SIFG1
SIFG2
JMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNEJMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNEJMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNE
SIFQINCHCDAT£ 1
SIF1 1
SIFPDATA2RBPNTR0,X
RXUVALSIFE2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFFSIFQINCHCDATA1SIFF1SIFPDATA2RBPNTR0,X
RXUVALSIFF2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFGSIFQINCHCDATA1SIFG1SIFPDATA2RBPNTR0,X
RXUVALSIFG2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFH
LOAD & STORE FIFO CHAR #5
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD & STORE FIFO CHAR #6
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD Sc STORE FIFO CHAR #7
ADJ PNTRS
TEST FIFO CHAR COUNT
138
398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039
SIFH
SIFH1
SIFH2
SIFI
SIFI1
SIFI2
SIFX
SIFX1
SIFX2
JMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNEJMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNEJMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNE
SIFQINCHCDATA1SIFH1SIFPDATA2RBPNTR0,X
RXUVALSIFH2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFISIFQINCHCDATA1SIFI1SIFPDATA2RBPNTR0,X
RXUVALSIFI2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFXSIFQINCHCDATA1SIFX1SIFPDATA2RBPNTR0,X
RXUVALSIFX2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFJ
LOAD & STORE FIFO CHAR #8
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD Sc STORE FIFO CHAR #9
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD Sc STORE FIFO CHAR #10
ADJ PNTRS
TEST FIFO CHAR COUNT
139
404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096
SIFJ
SIFJ1
SIFJ2
SIFK
SIFK1
SIFK2
SIFL
SIFL1
SIFL2
JMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNEJMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNEJMPSTXLDAABMIJMPLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBNE
SIFQINCHCDATA1SIFJ1SIFPDATA2RBPNTR0,X
RXUVALSIFJ2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFKSIFQINCHCDATA1SIFK1SIFPDATA2RBPNTR0,X
RXUVALSIFK2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFLSIFQINCHCDATA1SIFL1SIFPDATA2RBPNTR0,X
RXUVALSIFL2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFM
LOAD & STORE FIFO CHAR #11
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD Sc STORE FIFO CHAR #12
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD & STORE FIFO CHAR #13
ADJ PNTRS
TEST FIFO CHAR COUNT
140
409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153
SIFM
SIFM1
SIFM2
SIFN
SIFN1
SIFN2
SIFO
SIFOl
SIF02
SIFP
JMPSTXLDAABPLLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBEQSTXLDAABPLLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBEQSTXLDAABPLLDAALDXSTAAINXCPXBNELDXSTXLDXINXSTXLDXDEXBEQSTXLDXLDAALDABSTAA
SIFQINCHCDATA1SIFPDATA2RBPNTR0,X
RXUVALSIFM2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFQINCHCDATA1SIFPDATA2RBPNTR0,X
RXUVALSIFN2RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFQINCHCDATA1SIFPDATA2RBPNTR0,X
RXUVALSIF02RXLVALRBPNTRRBCHCT
RBCHCTINCHC
SIFQINCHCRXPNTRRBCHCTRBCHCT+14,X
LOAD Sc STORE FIFO CHAR #14
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD & STORE FIFO CHAR #15
ADJ PNTRS
TEST FIFO CHAR COUNT
LOAD & STORE FIFO CHAR #16
ADJ PNTRS
TEST FIFO CHAR COUNT
UPDATE PORT ' S BUFF PNTRS
141
415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210
SIFQ
STAB 5,XLDAA RBPNTRLDAB RBPNTR+1STAA 0,XSTAB 1,XJMP TDMACLRASTAA SIENBRA SIFP
*************************************************************
INTERRUPT REQUEST SERVICE ROUTINE
IRS
IRSA
IRSB
IRSC
IRSD
IRSE
IRSF
LDABLDAABEQBITBBEQLDXLDAASTAAINXSTXCPXBNELDAASTAACLRBITBBNERTIBITBBNELDAASTAARTIBITBBEQLDAASTAALDAALDABBEQDECBBEQDECBBNELDXSTAAINXSTXCPXBNELDAASTAABRA
AC IACSTXIRFGIRSC#2
IRSCRCRXPTo,xACIAD
RCRXPT#ERCRXIRSB#0 9DHAC IACSTXIRFG#1IRSE
#1
IRSE#1IRSBIT
#070HIRSF#1IRSBITACIADRCFGIRSJ
IRSG
IRSNRTXPT0,X
RTXPT#ERTXBIRSI#1RDRDYIRSH
TDR EMPTY?
OUTPUT CHAR TO AC I
A
CLR TX IRQ ENABLE
RDR FULL?
RCCOW/CCOW BITE ERROR:IRQ ERROR OR SCU FORMAT ERR
AC IA RX ERRORS?
LOAD AC IA RX CHAR
STORE CHAR IN RCCOW BUFFER
SET FOR RCCOW DATA READY
142
4211 IRSG LDX CTXPT4212 STAA 0,X4213 INX4214 STX CTXPT4215 CPX #ECTXB4216 BNE IRSI4217 LDAA #2
4218 STAA CDRDY4219 IRSH CLR RCFG4220 IRSI RTI4221 IRSJ CMPA #0A3H4222 BNE IRSL4223 LDX #SCTXB4224 STX CTXPT4225 LDAB #1
4226 IRSK STAB RCFG4227 RTI4228 IRSL CMPA #0A4H4229 BNE IRSM4230 LDX #SRTXB4231 STX RTXPT4232 LDAB #2
4233 BRA IRSK4234 IRSM CMPA #0A9H4235 BEQ IRSMA4236 CMPA #0ABH4237 BEQ IRSMA4238 BRA IRSD4239 IRSMA TAB4240 ANDB #02H4241 STAB RXINHB4242 LDAB #3
4243 STAB RC3FG4244 BRA IRSK4245 IRSN LDAB RC3FG4246 CMPB #3
4247 BEQ IRSQ4248 CMPB #2
4249 BEQ IRSO4250 TAB4251 RORB4252 RORB4253 RORB4254 RORB4255 ANDB #0CH4256 ORAB RXINHB4257 STAB RXINHB4258 ANDA #03FH4259 STAA BRATE24260 TAB4261 ANDB #7
4262 ANDA #038H4263 ASLB4264 ASLB4265 ASLB4266 STAB CHRAT34267 STAA CHRAT4
STORE CHAR IN CCOW BUFFER
SET FOR CCOW DATA RDY
GET RXINHB BIT 2 FROM A9/A11 BIT 2
WBRWBRWBRWBRWBRWBR
GET RXINHB BITS 4,3 FROM BITS 7,6
REMOVE RXINHB BITS BEFORE USINGPORT BIT RATES (3 & 4)
WBRWBRWBRWBRWBRWBRWBRSEFWBR
143
426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324
IRSO
IRSP
IRSQ
CLRCLRRTITABROLBROLBROLBANDBORABSTABANDASTAATABANDBSTABTABANDBANDAASLBASLBASLBSTABSTAADECRTISTAABRA
RCFGRC3FG
GET RXINHB BIT FROM BIT 6
#01HRXINHBRXINHB#0BFHBRATE1
#080HBPS16K
#7#038H
CHRAT1CHRAT2RC3FG
PTONRXIRSP
REMOVE RXINHB BIT BEFORE USINGPORT BIT RATES (1 & 2)
WBRWBRWBRWBRWBRWBRSEFWBR
WBR
PORT ON & RX ONLY INFO
************************************************************
* LOAD RX ELASTIC BUFFER FOR 16 KBPS*
STUFF LDX #SBUFF1CLRB
STUFA STAA 0,XINXINCBBNE STUFARTS
********************************************************
INSERR BRA INSERR BAD INTERRUPT- CRASH*
************************************************************
* PROGRAM VERSION, ROM CHECKSUM VALUES, AND INTERRUPT VECTORS*
***********************************************************
ORGPGMVRS FCBCKSMB RMBCKSMA RMB
FDBFDBFDBFDB
*
END
0FFF5H4
1
1
IRSINSERRINSERRPWRON
PWRON
** PROGRAM VERSION**MSB OF CHECKSUM - BD . PROGRAMMER SUPPLIES VALUELSB OF CHECKSUM - SEE 98-P082 93T FOR DETAILS.IRQ VECTORSWI ERRORNMI ERRORRESTART VECTOR
144
APPENDIX E
DATA BUFFER PROCESSOR LABEL CROSS REFERENCE
Label NameDefined
On Referenced OnBITRAT 642 637 943
BSERV 2801 2351 2385 2406 2524 2528 2566 2580 2662
2684 2720 2740 2748 2757 2761 2765 2768
2771 2775 2779 2783 2787 2791
BSERVA 2806 2803
BSERVB 2821 2807
BSERVC 2826 2809
BSERVD 2832
BSERVE 2833 2831 2835
BSERVF 2834 2829
BSERVG 2848 2843 2845
BSERVH 2858 2853 2855
BSERVI 2868 2863 2865
BSERVK 2878 2873 2875
CKSMA 4318
CKSMB 4317
CLEAR 116 29 126
CLEARA 118 120
INIT 68 11 175
INSERR 4308 4308
IOIA 1128 988
I01A1 989 986
I01A2 992 990
I01A3 1025 1023
IOIAA 1132 1130
IOIB 1136 1134
IOIBA 1144 1147
IOIBB 1145 1143
IOIC 1148 1137 1139
IOICA 1152 1141
IOID 1160 1149 1314
IOIE 1164 1151
IOIF 1168 1166
IOIG 1200 1342
IOIH 1210 1161
101 HA 1214 1212
I01HB 1217 1215
ion 1221 1219 1284
IOIK 1226 1224
145
Label NameDefined
On Referenced OnI01LF 1065 1387 1391 1395 1401 1405 1409 1413 1417
1421 1425
I01LF1 1071 1068
IOILFA 1078 1073
IOILFB 1081 1075 1077 1079
IOILFC 1095 1085 1089
IOILFD 1102 1098
IOILS 1030 1221
1264
1226
1269
1231 1236 1244 1249
1274
1254 1259
IOILSA 1053 1048
IOILSB 1056 1050 1052 1054
IOILSX 1047 1037
IOIM 1231 1229
IO1N10 1274 1272
I01N2 1236 1234
I01N3 1240 1238
I01N4 1244 1242
I01N5 1249 1247
I01N6 1254 1252
I01N7 1259 1257
I01N8 1264 1262
I01N9 1269 1267
IOIO 1276 1216
I01P 1279
IOIPT 984 712
976
729 739 778 816 854 927 932
IOIXP 1285 1220
1258
1225
1263
1230 1235 1239 1243
1268 1273 1275 1278
1248 1253
I01XQ 1291 1286
I01Y 1292 1131 1135
I01YA 1314 1303 1316
I01YA1 1318 1213
I01YB 1315 1293
IOIYC 1330
I01YC1 1338 1376 1384
I01YD 1343 1144 1317
IOIYE 1350 1348
I01YEO 1369 1363 1373
I01YE1 1370 1101 1379
I01YF 1378 1344
I01YFA 1385 1382
IOIYG 1387
I01YH 1391
I01YI 1395
101YJ 1398
146
Label NameDefined
On Referenced OnI01YK 1401
IOIYL 1405
101YM 1409
I01YN 1413
I01Y0 1417
I01YP 1421
I01YQ 1425
I02A 1574 1434
102A
1
1435 1432
I02A2 1438 1436
I02A3 1471 1469
I02AA 1578 1576
I02B 1582 1580
I02BA 1590 1593
I02BB 1591 1589
I02C 1594 1583 1585
I02CA 1598 1587
I02D 1606 1595 1771
I02DA 1609 1607
I02E 1611 1597
I02F 1615 1613
I02FA 1639 1634
I02FB 1642 1638
I02G 1653 1799
I02GA 1657 1654
I02GB 1658 1656
I02H 1667 1608
I02HA 1671 1669
I02HB 1674 1672
1021 1678 1676 1741
I02K 1683 1681
I02LF 1511 1844
1878
1848 1852 1858 1862 1866 1870 1874
1882
I02LF1 1517 1514
I02LFA 1524 1519
I02LFB 1527 1521 1523 1525
I02LFC 1541 1531 1535
I02LFD 1548 1544
I02LS 1476 1678
1721
1683 1688 1693 1701 1706 1711 1716
1726 1731
I02LSA 1499 1494
I02LSB 1502 1496 1498 1500
I02LSX 1493 1483
I02M 1688 1686
IO2N10 1731 1729
I02N2 1693 1691
147
Label NameDefined
On Referenced OnI02N3 1697 1695
I02N4 1701 1699
102N5 1706 1704
I02N6 1711 1709
I02N7 1716 1714
I02N8 1721 1719
I02N9 1726 1724
1020 1733 1673
I02P 1736
102PT 1430 991
1313
1400
1025
1349
1404
1046
1369
1408
1163 1167 1199
1377 1386 1390
1412 1416 1420
1209 1291
1394 1397
1424
I02XP 1742 1677
1715
1682
1720
1687
1725
1692 1696 1700
1730 1732 1735
1705 1710
I02XQ 1748 1743
I02Y 1749 1577 1581
I02YA 1771 1760 1773
102YA1 1775 1670
I02YB 1772 1750
I02YC 1787
I02YC1 1795 1833 1841
102YD 1800 1590 1774
I02YE 1807 1805
IO2YE0 1826 1820 1830
I02YE1 1827 1547 1836
I02YF 1835 1801
I02YFA 1842 1839
I02YG 1844
I02YH 1848
I02YI 1852
I02YJ 1855
I02YK 1858
I02YL 1862
I02YM 1866
I02YN 1870
I02Y0 1874
I02YP 1878
I02YQ 1882
I03A 2031 1891
I03A1 1892 1889
I03A2 1895 1893
I03A3 1928 1926
I03AA 2035 2033
I03B 2039 2037
I03BA 2047 2050
I03BB 2048 2046
148
Label NameDefined
On Referenced OnI03C 2051 2040 2042
I03CA 2055 2044
I03D 2063 2052 2228
103DA 2066 2064
I03E 2068 2054
103 F 2072 2070
103FA 2096 2091
I03FB 2099 2095
I03G 2110 2256
I03GA 2114 2111
I03GB 2115 2113
I03H 2124 2065
I03HA 2128 2126
I03HB 2131 2129
1031 2135 2133 2198
I03K 2140 2138
I03LF 1968 2301
2335
2305
2339
2309 2315 2319 2323 2327 2331
I03LF1 1974 1971
I03LFA 1981 1976
I03LFB 1984 1978 1980 1982
I03LFC 1998 1988 1992
I03LFD 2005 2001
I03LS 1933 2135
2178
2140
2183
2145
2188
2150 2158 2163 2168 2173
I03LSA 1956 1951
I03LSB 1959 1953 1955 1957
I03LSX 1950 1940
I03M 2145 2143
IO3N10 2188 2186
I03N2 2150 2148
I03N3 2154 2152
I03N4 2158 2156
I03N5 2163 2161
I03N6 2168 2166
I03N7 2173 2171
I03N8 2178 2176
I03N9 2183 2181
1030 2190 2130
I03P 2193
103PT 1887 1437
1770
1857
1471
1806
1861
1492
1826
1865
1610 1614
1834 1843
1869 1873
1652 1666 1748
1847 1851 1854
1877 1881
I03XP 2199 2134
2172
2139
2177
2144
2182
2149 2153
2187 2189
2157 2162 2167
2192
I03XQ 2205 2200
149
Label NameDefined
On Referenced OnI03Y 2206 2034 2038
I03YA 2228 2217 2230
103YA1 2232 2127
I03YB 2229 2207
I03YC 2244
I03YC1 2252 2290 2298
I03YD 2257 2047 2231
I03YE 2264 2262
IO3YE0 2283 2277 2287
103YE 1 2284 2004 2293
I03YF 2292 2258
I03YFA 2299 2296
I03YG 2301
I03YH 2305
I03YI 2309
I03YJ 2312
I03YK 2315
I03YL 2319
I03YM 2323
I03YN 2327
I03Y0 2331
I03YP 2335
I03YQ 2339
I04A 2488 2348
I04A1 2349 2346
I04A2 2352 2350
I04A3 2385 2383
I04AA 2492 2490
I04B 2496 2494
I04BA 2504 2507
I04BB 2505 2503
I04C 2508 2497 2499
I04CA 2512 2501
I04D 2520 2509 2685
I04DA 2523 2521
I04E 2525 2511
I04F 2529 2527
I04FA 2553 2548
I04FB 2556 2552
I04G 2567 2713
I04GA 2571 2568
I04GB 2572 2570
I04H 2581 2522
I04HA 2585 2583
I04HB 2588 2586
1041 2592 2590 2655
150
Label NameDefined
On Referenced OnI04K 2597 2595
I04LF 2425 2758
2792
2762
2795
2766 2772 2776 2780 2784 2788
I04LF1 2431 2428
I04LFA 2438 2433
I04LFB 2441 2435 2437 2439
I04LFC 2455 2445 2449
I04LFD 2462 2458
I04LS 2390 2592
2635
2597
2640
2602
2645
2607 2615 2620 2625 2630
I04LSA 2413 2408
I04LSB 2416 2410 2412 2414
I04LSX 2407 2397
I04M 2602 2600
IO4N10 2645 2643
I04N2 2607 2605
I04N3 2611 2609
I04N4 2615 2613
I04N5 2620 2618
I04N6 2625 2623
I04N7 2630 2628
I04N8 2635
2640
2633
2638I04N9
1040 2647 2587
I04P 2650
I04PT 2344 1894
2227
2314
1928
2263
2318
1949
2283
2322
2067 2071
2291 2300
2326 2330
2109
2304
2334
2123
2308
2338
2205
2311
I04XP 2656 2591
2629
2596
2634
2601
2639
2606 2610
2644 2646
2614
2649
2619 2624
I04XQ 2662 2657
I04Y 2663 2491 2495
I04YA 2685 2674 2687
104YA1 2689 2584
104YB 2686 2664
I04YC 2701
104YC1 2709 2747 2755
I04YD 2714 2504 2688
104YE 2721 2719
IO4YE0 2740 2734 2744
104YE
1
2741 2461 2750
I04YF 2749 2715
104YFA 2756 2753
I04YG 2758
104YH 2762
I04YI 2766
151
Label NameDefined
On Referenced OnI04YJ 2769
I04YK 2772
I04YL 2776
104YM 2780
104YN 2784
I04Y0 2788
I04YP 2792
I04YQ 2795
IRS 4168
IRSA 4174
IRSB 4183 4179
IRSC 4186 4170 4172
IRSD 4188 4238
IRSE 4191 4184 4187
IRSF 4195 4192
IRSG 4211 4199
IRSH 4219 4210
IRSI 4220 4207 4216
IRSJ 4221 4197
IRSK 4226 4233 4244
IRSL 4228 4222
IRSM 4234 4229
IRSMA 4239 4235 4237
IRSN 4245 4201
IRSO 4271 4249
IRSP 4291 4294
IRSQ 4293 4247
LD1 1107 1360 1361 1364 1365 1366 1367 1368
LD2 1553 1817 1818 1821 1822 1823 1824 1825
LD3 2010 2274 2275 2278 2279 2280 2281 2282
LD4 2467 2731 2732 2735 2736 2737 2738 2739
PGMVRS 4316
PWRON 6
PWR0N1 58 30
RAMERR 31 19 34
RAMT 16 27
RAMTST 17 22
RBI 195 186 900
RBI1C 225 222
RBI1CA 228 226
RBI1D 232 230
RBI IDA 241 237
RBI IE 242 234
RBI1EA 252 247
RBI1G 264 245
152
Label NameDefined
On Referenced OnRBI1GA 271
RBI1GB 284 278
RBI1H 293 266 283
RBI1H1 294 263
RBI 1 HA 303 297
RBI1HB 307 302
RBI2B 313 223
RBI2C 316 314
RBI2CA 319 317
RBI2D 323 321
RBI2DA 332 328
RBI2E->-.-*
->j:> 325
RBI2EA 343 338
RBI2G 355 336
RBI2GA 362
RBI2GB 377 369
RBI2H 386 357 376
RBI2H1 387 354
RBI2HA 396 390
RBI2HB 400 395
RBI3B 406 315
RBI3C 409 407
RBI3CA 412 410
RBI3D 416 414
RBI3DA 425 421
RBI3E 426 418
RBI3EA 436 431
RBI3G 448 429
RBI3GA 455
RBI3GB 470 462
RBI3H 479 450 469
RBI3H1 480 447
RBI3HA 489 483
RBI3HB 493 488
RBI4B 499 408
RBI4C 502 500
RBI4CA 505 503
RBI4D 509 507
RBI4DA 518 514
RBI4E 519 511
RBI4EA 529 524
RBI4G 541 522
RBI4GA 548
RBI4GB 563 555
RBI4H 572 543 562
153
Label NameDefined
On Referenced OnRBI4H1 573 540
RBI4HA 582 576
RBI4HB 586 581
RBIA 198 196
RBIB 210 199
RBIBA 217 213
RBIJ 594 501
RBIJA 600 595
RBIK 610 602
RBIKA 616 634
RBIL 619 614
RBIM 625 636
RBIN 631 612
RBIO 635 632
RBIS 637 311 404 497 590
RBISA 651 647
RBISB 656 652
RBISC 661 657
RBISD 666 662
RBISE 671 667
RBISF 674 643
RBIT 683 599 638
RJBIU 677 645
ROMERR 53 48 50 56
ROMTSA 41 46
ROMTST 38 28
SERVF1 2840 2847
SERVF2 2844 2841
SERVF3 2846 2839
SERVG1 2850 2857
SERVG2 2854 2851
SERVG3 2856 2849
SERVH1 2860 2867
SERVH2 2864 2861
SERVH3 2866 2859
SERVI1 2870 2877
SERVO 2874 2871
SERVI3 2876 2869
SETUP 126
SETUP
1
127 58 188
SETUPS 152 141
SIF 3746 2886
SIF1
SIF2
3750
3752
3784
3779
SIF3 3758 3756
154
Label NameDefined
On Referenced OnSIF3A 3769 3766
SIF4 3770 3768
SIF5 3778 3759
SIF6 3780 3753
SIFA 3783 3747
SIFA1 3855 3853
SIFA 1
A
3836 3786
SIFA IB 3845 3841
SIFA1C 3842 3838
SIFA2 3862 3860
SIFB 3870 3868
SIFB1 3874 3872
SIFB2 3881 3879
SIFC 3889 3887
SIFC1 3893 3891
SIFC2 3900 3898
SIFD 3908 3906
SIFD1 3912 3910
SIFD2 3919 3917
SIFE 3927 3925
SIFE1 3931 3929
SIFE2 3938 3936
SIFF 3946 3944
SIFF1 3950 3948
SIFF2 3957 3955
SIFG 3965 3963
SIFG1 3969 3967
SIFG2 3976 3974
SIFH 3984 3982
SIFH1 3988 3986
SIFH2 3995 3993
SIFI 4003 4001
SIFI1 4007 4005
SIFI2 4014 4012
SIFJ 4041 4039
SIFJ1 4045 4043
SIFJ2 4052 4050
SIFK 4060 4058
SIFK1 4064 4062
SIFK2 4071 4069
SIFL 4079 4077
SIFL1 4083 4081
SIFL2 4090 4088
SIFM 4098 4096
SIFM1 4101
155
Label NameDefined
On Referenced OnSIFM2 4108 4106
SIFN 4115
SIFN1 4118
SIFN2 4125 4123
SIFO 4132
SIFOl 4135
SIF02 4142 4140
SIFP 4150 3833 3873 3892 3911 3930 3949 3968 3987
4006 4025 4044 4063 4082 4100 4117 4134
4162
SIFQ 4160 3829 3869 3888 3907 3926 3945 3964 3983
4002 4021 4040 4059 4078 4097 4114 4131
4148
SIFR 3788 3796
SIFR1 3790
SIFRA 3792 3789
SIFRB 3813 3851
SIFRC 3814 3832
SIFRD 3821 3819
SIFRE 3830 3827
SIFX 4022 4020
SIFX1 4026 4024
SIFX2 4033 4031
SOF 2883 2833
SOF1 2886 2884
SOF2 2888 2907
SOF3 2890 2902
SOF4 2901 2895
SOF5 2903 2891
SOFA 2906 2885
SOFAA 2914 979 2911
SOFB 2925 2923
SOFB1 3048 3045
SOFB2 3053 3050
SOFB3 3057 3054
SOFB4 3062 3059
SOFB5 3066 3063
SOFB6 3070 3068
SOFBA 2931 2928
SOFBB 2936 2933
SOFBC 2940 2937
SOFBD 2945 2942
SOFBE 2949 2946
SOFBF 2954 2951
SOFBG 2958 2955
156
Label NameDefined
On Referenced OnSOFBH 2963 2960
SOFBI 2967 2964
SOFBJ 2972 2969
SOFBK 2976 2973
SOFBL 2981 2978
SOFBM 2985 2982
SOFBN 2990 2987
SOFBO 2994 2991
SOFBP 2999 2996
SOFBQ 3003 3000
SOFBR 3008 3005
SOFBS 3012 3009
SOFBT 3017 3014
SOFBU 3021 3018
SOFBV 3026 3023
SOFBW 3030 3027
SOFBX 3035 3032
SOFBY 3039 3036
SOFBZ 3044 3041
SOFC 3072 3612
SOFCA 3075 3073
SOFCB 3082 3076
SOFCC 3090 3088
SOFCD 3096 3081 3092
SOFD 3101 3099
SOFDA 3105 3103
SOFDB 3112 3106
SOFDC 3120 3118
SOFDD 3126 3111 3122
SOFE 3131 3129
SOFEA 3135 3133
SOFEB 3142 3136
SOFEC 3150 3148
SOFED 3156 3141 3152
SOFF 3161 3159
SOFFA 3165 3163
SOFFB 3172 3166
SOFFC 3180 3178
SOFFD 3186 3171 3182
SOFG 3191 3189
SOFGA 3195 3193
SOFGB 3202 3196
SOFGC 3210 3208
SOFGD 3216 3201 3212
SOFH 3221 3219
157
Label NameDefined
On Referenced OnSOFHA 3225 3223
SOFHB 3232 3226
SOFHC 3240 3238
SOFHD 3246 3231 3242
SOFI 3251 3249
SOFIA 3255 3253
SOFIB 3262 3256
SOFIC 3270 3268
SOFID 3276 3261 3272
SOFJ 3281 3279
SOFJA 3285 3283
SOFJB 3292 3286
SOFJC 3300 3298
SOFJ-
» 3306 3291 3302
SOF 3311 3309
SOFkA 3315 3313
SOFKB 3322 3316
SOFKC 3330 3328
SOFKD *> i ** ^ all jjj>z
SOFL 3341^ ~* "* d
SOFLA 3345 3343
SOFLB 3352 3346
SOFLC 3360 3358
SOFLD 3366 3351 3362
SOFM 3371 3369
SOFMA 3375 3373
SOFMB 3382 3376
SOFMC 3390 3388
SOFMD 3396 3381 3392
SOFN 3401 3399
SOFNA 3405 3403
SOFNB 3412 3406
SOFNC 3420 3418
SOFND 3426 3411 3422
SOFO 3431 3429
SOFOA 3435 3433
SOFOB 3442 3436
SOFOC 3450 3448
SOFOD 3456 3441 3452
SOFP 3461 3459
SOFPA 3465 3463
SOFPB 3472 3466
SOFPC 3480 3478
SOFPD 3486 3471 3482
SOFQ 3491 3489
158
Label NameDefined
On Referenced OnSOFQA 3495 3493
SOFQB 3502 3496
SOFQC 3510 3508
SOFQD 3516 3501 3512
SOFR 3520
SOFRA 3524 3522
SOFRB 3531 3525
SOFRC 3539 3537
SOFRD 3545 3530 3541
SOFS 3550 3074 3104 3134 3164 3194 3224 3254 3284
3314 3344 3374 3404 3434 3464 3494 3523
3600
SOFT 3564 3100 3130 3160 3190 3220 3250 3280 3310
3340 3370 3400 3430 3460 3490 3519 3548
SOFTA 3566 3597 3619 3626 3634 3642 3650 3658 3666
3674 3682 3690 3698 3706 3714 3722 3730
3738
SOFTB 3592 3565
SOFU 3598 3591 3593
SOFY 3601 2924
SOFYA 3613 3603
SOFYA
1
3617 3615
SOFYB 3620
SOFYB1 3624 3621
SOFYC 3627
SOFYC1 3631 3628
SOFYD 3635 j6jj
SOFYD1 3639 3636
SOFYE 3643 3641
SOFYE1 3647 3644
SOFYF 3651 3649
SOFYF1 3655 3652
SOFYG 3659 3657
SOFYG1 3663 3660
SOFYH 3667 3665
SOFYH1 3671 3668
SOFYI 3675 3673
SOFYI1 3679 3676
SOFYJ 3683 3681
SOFYJ1 3687 3684
SOFYK 3691 3689
SOFYK1 3695 3692
SOFYL 3699 3697
SOFYL1 3703 3700
SOFYM 3707 3705
159
Label NameDefined
On Referenced OnSOFYM1 3711 3708
SOFYN 3715 3713
SOFYN1 3719 3716
SOFYO 3723 3721
SOFYOl 3727 3724
SOFYP 3731 3729
SOFYP1 3735 3732
SOFYQ 3739 3737
SOFYXX 3612 3605 3609
STUFA 4301 4304
STUFF 4299 279 370 463 556
TBI 692 197 227 231 251 318 322 342 411
415 435 504 508 528 617 630
TBI1 698 693
TBI1BA 741 738
TBI IE 748 742
TBI1EA 752 747
TBI IF 768 766
TBI2 703 697
TBI2B 773 735
TBI2BA 779 777
TBI2E 786 780
TBI2EA 790 785
TBI2F 806 804
TBI3 705 699
TBI3B 811 774
TBI3BA 817 815
TBI3E 824 818
TBI3EA 828 823
TBI3F 844 842
TBI4 710 706
TBI4B 849 812
TBI4BA 855 853
TBI4E 862 856
TBI4EA 866 861
TB14F 882 880
TBIA 713 711
TBIB 721 714
TBIBA 730 728
TBIG 887 730 850
TBIG1 897 899
TBIGA 901 888
TBIGB 908 910
TBIGC 912 905
TBIH 914 918
160
Label NameDefined
On Referenced OnTBIHA 921 942
TBIHB 925 911
TBIHC 928 926
TBIJ 933 902
TBIK 935 939
TBIN 943 771 809 847 885
TBIO 944
TBIQ 949
TBIQ1 952
TBIR 962 958
TBIRA 964 959 961
TBIRB 977 970
TBIS 979 951 963
TDMA 156 64 172 183 3748 3777 3781 3791 3808
3844 3854 4159
TDMA1 185 159
TDMAA 170 167
TDMAB 171 169
TDMAI 174 161
TIBA 731 725
TSTR ^M 28 24
161
INITIAL DISTRIBUTION LIST
1. Defense Technical Information Center 2
8725 John J. Kingman RD., Ste 0944
Fort Belvoir, VA 22060-6218
2. Dudley Knox Library 2
Naval Postgraduate School
411 Dyer Road
Monterey, CA 93943-5150
3. Center for Naval Analysis 1
4401 Ford Ave.
Alexandria, VA 22302-0268
4. Chief of Naval Research 1
800 North Quincy St.
Arlington, VA 22217'c'
5. Dr. Dan Boger, Chairman, Code CS 1
Computer Science Dept.
Naval Postgraduate School
Monterey, CA 93943-5100
6. Dr. Man-Tak Shing, Code CS/SH 1
Computer Science Dept.
Naval Postgraduate School
Monterey, CA 93943-5100
7. Kathleen M. Nelson 1
SPAWAR SYSCEN SAN DIEGOD844
San Diego, CA 92152-5150-t v
8. Laurence Nixon 1
SPAWAR SYSCEN SAN DIEGOD832
San Diego, CA 92152-5150
9. Joe Hirschfelder 1
SPAWAR SYSCEN SANDIEGOD874
San Diego, CA 92152-5150
165