ntrs.nasa.govNASA Contractor Report 189603 Advanced Transport Operating System (ATOPS) Color...
Transcript of ntrs.nasa.govNASA Contractor Report 189603 Advanced Transport Operating System (ATOPS) Color...
NASA Contractor Report 189603
Advanced Transport Operating System (ATOPS)Color Displays Software DescriptionMicroVAX System
Christopher J. SlominskiValerie E. PlylerRichard W. Dickson
Computer Sciences CorporationHampton, Virginia
Prepared ForLangley Research Centerunder Contract NAS1-19038January 1992
(NASA-CR-189603) AOVANCED TRANSPORT
OPERATING SYSTEM (ATOPS) COLOR DISPLAYSSOFTWARE DESCRIPTION: MICROVAX SYSTEM
(Computer Sciences Corp.) 266 p CSCL OlDG3/06
Nq2-22395
Unclas
0085166
N/LRANational Aeronautics and
Space Administration
Langley Research Center
Hampton, Virginia 23665-5225
-i-
TABLE OF CONTENTS
1.0 INTRODUCTION ................................... 5
2.0
2.1
2.1
2.2
2.3
2.4
2.5
2.5
2.5
SYSTEM OVERVIEW ................................ 7
PROCESSESANDEXECUTABLEI_GES ................9.i I_GE J MOD_L_SUMMARY.......................11
GLOBAL SECTIONS 17INSPECTING GLOBAL'_i_iifi{fi_'_i_fl'_ifi_''iiii::iill19STARTINGANDSTOPPINGVAXDISPLAYSOFTWARE.....21CONDITIONHANDLING.............................23
.I TOPMS CONDITION HANDLER ...................... 25
.2 EXCEPTION LOG FILES .......................... 27
3.0 I/O COMMUNICATIONS ............................. 29
DSPHDL ....................................... 30
DOUTIO ....................................... 35
DISFIL ....................................... 36
4.0
5.0
EXECUTIVE SOFTWARE ............................. 37
DSPFST ....................................... 38
DP LOAD ..................................... 40
DSPSLW ....................................... 42
PRN AST ..................................... 44
LOG AST ..................................... 45
DATA RECORDING ................................. 47
DDASOT.......................................48DDSTAR.......................................SOcHECK .......................................s3DASDUMP ..................................... 54
DASPRC ...................................... ssGITEM ....................................... 56
NSNAP ....................................... 57OLDSNAP..................................... s8SNAPDEL..................................... s9SNAPDUMP.................................... 6oS_APMOD..................................... 61SNPRC___.................................... 62SYMSEARCH.................................. 63
UCASE ....................................... 65
DISDAT ....................................... 66
DSNAP ........................................ 68
SNAPOUT ...................................... 70
6.0
6.1
NASA PFD SOFTWARE .............................. 71
NASA PFD PROCEDURES ............................ 77
AIRGAM ....................................... 78
STAND OFF ................................... 80
CASMGR ....................................... 81
7.07.17.2
7.3
GUIDE ........................................ 82SCLXTK ...................................... 84
MSGMGR 85PACK ......................................... 88PFD_NASA ..................................... 90
ALT_CNVRT ................................... 93RWYMGR ....................................... 94
SCREEN ...................................... i01SBXMGR ....................................... 102STAR ......................................... 103LIMITS ...................................... 105
UNPACK ....................................... 106WINDOW ....................................... 108
NAV DISPLAY SOFTWARE ........................... 109THE NAV BACKGROUNDBUFFER ...................... 115NAY BACKGROUNDUTILITIES ....................... 131
NAV_TEXT ..................................... 132NAV SYMBOL ................................... 133BEG SEGNAY LINENAV ARCNAY WPTNAV LABELEND SEG
...................................... 135..................................... 136
...................................... 137
...................................... 138.................................... 139
...................................... 140
NAY BACKGROUNDPROCEDURES ...................... 141BOUNDS ....................................... 142
AREAS ....................................... 143NEARPT ...................................... 144
MAP_AIRWAY ................................... 145GET XY ...................................... 146NAME SIZE ................................... 147
m
NAVS LW
NAVUPD
BUSFMT
OPTION
AIRPRT
ARP SMB
NAVAI D
NAVSMB
RAD IAL
RUNWAY
STRIPS
PATHS
PLAN
LEG
DMA
TURN
WPTXT
TEXT
....................................... 148
...................................... 150
• .--..--...-....-..................... 151
....................................... 152
...................................... 154
...................................... 155
....................................... 156
...................................... 157
...................................... 158
...................................... 160
• --..-................................ 161
........................................ 163
• .--....-...-........................... 164
• ....----..-............................. 165
• ---.....-............................... 166
• ....................................... 167
....................................... 168
• -..-.................................... 169
-3-
7.4
8.08.1
9.0
i0.0
ii.0ii.i
II .2
11.311.4
NAV REAL-TIME PROCEDURES ....................... 171NAVEXC ....................................... 172
SELTRK ...................................... 174NAVMLS ...................................... 176TRENDV ...................................... 177RNGARC ...................................... 178TBOX ........................................ 179ROTATE ...................................... 180
PTHPOS ....................................... 181TIMPOS ...................................... 183LINE ........................................ 185TURN ........................................ 186PASSBY ...................................... 187INBRG ....................................... 188PTHLEG ...................................... 189
FMTBZL ....................................... 190
ENGINE DISPLAY SOFTWARE ........................ 193ENGINE PROCEDURES .............................. 197
ENGEXC ....................................... 198EPR F1 ...................................... 201EPR F2 ...................................... 202
FFPRC ........................................ 203FTEST ........................................ 205
SYSTEMWARNINGDISPLAY SOFTWARE ................ 207SYSEXC ....................................... 208
SPERRYPFD DISPLAY SOFTWARE .................... 211PFDEXC ....................................... 212
TAKEOFFPERFORMANCEMONITORING SYSTEM (TOPMS) ..PRETAKEOFFBACKGROUNDSOFTWARE
ACTRIMAEROCATMOSENGINELNGFMPOLYFT
SIMEQAPRETKFTHROTS
215................. 221
....................................... 223• .....---.-............................. 224........................................ 225
....................................... 226• .......-............................... 227
....................................... 228...................................... 229
• .-..-.-............................... 230....................................... 231
TOPMSREAL-TIME SOFTWARE ....................... 233FILL ......................................... 235TOPEXC ....................................... 237APLANE ...................................... 240
TOPMSOBJECT LIBRARY (TOPMS.OLB) ............... 241TOPMSSIMULATION ............................... 259
-4-
Appendices
A - I/O BUFFER USAGE ................................. 263B - VIEW COMMANDENTRIES ............................. 279C - CREATING THE EXECUTABLEIMAGES ................... 285D - GENERALUTILITIES ................................ 287E - DISPLAY FORMATFREEZE ............................ 291
List of Figures
2.16.16.26.37.17.27.37.48.1ii.iII .2Ii .3D.I
VIEW DISPLAY FORMAT ............................ 20PRIMARY FLIGHT DISPLAY FORMAT .................. 75RUNWAYCOORDINATETRUNCATION ................... 97RUNWAYCOORDINATEPOINTS ....................... 99NAVIGATION DISPLAY FORMAT (MAP MODE) ........... iiiNAVIGATION DISPLAY FORMAT (PLAN MODE) .......... 113SAMPLEBACKGROUNDFLIGHT PLAN ._ ................ 119BACKGROUNDBUFFER DATA FORMAT .................. 121ENGINE DISPLAY FORMAT .......................... 195TOPMSDISPLAY FORMAT (TAKEOFFMODE) ............ 217TOPMSDISPLAY FORMAT(ABORTMODE) .............. 219"ENABLE" WORD (TOPMS) .......................... 261"GREAT CIRCLE" ARC POSITION CALCULATION ........ 289
-5-
Section 1.0 INTRODUCTION
This document describes the software created for thedisplay MicroVAX computer used on the Advanced TransportOperating System (ATOPS) project at the Langley ResearchCenter. The software was developed by Computer SciencesCorporation (CSC) for NASA under contract NASI-19038. Thisdocument targets the software delivery of February 27, 1991as a baseline system. Since a few items have been acceptedfor the next delivery, they will also be included in thisdocument and noted as such.
The display MicroVAX computer is the host to the Sperrymicroprocessor display system. The software residing inthat system is addressed by another document entitled:
Advanced Transport Operating System
COLORDISPLAY SOFTWAREDOCUMENTATION
Microprocessor System
The display host computer works in tandem with anotherMicroVAX computer, referred to as the Flight Management andFlight Controls computer (FM/FC). The document
FLIGHT MANAGEMENT/ FLIGHT CONTROLS
SOFTWARE DOCUMENTATION
should be referenced for information about FM/FC software.
Throughout this document, descriptions of software
modules are presented in a standardized format. The basic
template is shown on the next page. At the top of the form
is a header block containing miscellaneous information about
the module. Next appears a one or two sentence synopsis
used as a quick reference stating the purpose of the module.
A detailed description follows which may be a small para-
graph to several pages in length. Global symbol referencesare listed next. These are the subroutines and common
variables referenced by the particular module. Note that
passed parameter variables are not shown here. Passed
parameters are provided in the CALLING SEQUENCE portion ofthe header information block. When an asterisk is appended
to the name of a data variable listed in the gloabl
reference section it denotes a memory location modified by
the module.
6
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
VARIABLESe.o,,eo oeeeeo. .oeeeoe
ARRAY S
oQee..,
FUNCTIONS AND SUBROUTINES
e.eeeeee iooee,oe .eeoeoe.
-7-
Section 2.0 SYSTEM OVERVIEW
The various sub-sections of the system overview briefly
describe the overall configuration of the displays host soft-
ware on the MicroVAX flight computer. The reader should be
familiar with the VAX/VMS operating system. Several important
key words are listed below. Detailed information about these
concepts is provided by the VAX/VMS reference manuals. In
particular "Introduction to VMS" and "Guide to Using VMS" are
good places to start.
DEC command language (DCL)command files
processes
images
process priorities
global sections
exceptional conditions / condition signalingcondition handlers
-9-
Section 2.1 PROCESSESAND EXECUTABLEIMAGES
There are six executable images associated with thedisplays host software. Three of them are utility programsand three are displays applications programs. Their namesare given below with a brief description of their purposes.
DDSTARSECTIONVIEW
(utilities)manipulate data recording tablesinstall and remove global sectionsmonitor global variables
DSPFSTDSPSLWDSPHDL
(displays applications)perform displays real-time calculationsperform displays background processingperform system functions (timing, interrupts, I/O)
The environment created for the displays executable imagesconsists of four VAX processes. They are the initial processcreated from the user login and three spawned sub-processes.The utility programs run in the context of the login process.Any one of the three may be activated from the terminal withthe RUN command. The other three images remain activecontinuously under the context of their own sub-process.Since the displays applications images are always active, theVMS priority system determines how often the images actuallyexecute. DSPHDL and DSPFST are assigned priorities withinthe VMS real-time range, 19 and 18 respectively. DSPSLWuses the default round-robin priority of 4.
The three displays applications images each have a welldefined set of responsibilities. The remaining pages of thissection list the computations performed by DSPFST, DSPSLW,and DSPHDL. The names of modules which make up each imageare also included.
PRECED_i'GG PAGE BLAJ"_K NOT FILMED
-II-
Section 2.1.1 IMAGE / MODULE SUMMARY
EXECUTABLE IMAGE: DSPFST
DSPFST is the displays real-time applications program.
The computations performed are repeated once every 50 milli-
seconds (20 times per second). Its major function is the
generation of real-time display data for the Sperry micro-
processor color display system. This includes the data for
all microprocessor formats, except the information created
for the navigation displays map background. Other functions
include the formatting of variables for data recording and
the processing of inputs received from the microprocessor
system. The following is a list of program modules which
comprise DSPFST.
MODULE FILE PURPOSE
DSPFST
DP LOAD
MAPTBL
DDASOT
DSNAP
DUMPS
PROJECT
PFDEXC
SYSEXC
NAVEXC
SELTRK
NAVMLS
TRENDV
RNGARC
TBOX
ROTATE
PTHPOS
TIMPOS
LINE
TURN
PASSBY
INBRG
PTHLEG
FMTBZL
PFD NASA
ALT CNVRT
AIRGAM
STAND OFF
WINDOW
STAR
LIMITS
RWYMGR
SCREEN
DSPFST.FOR
DSPFST.FOR
MAPTBL.MAR
DDASOT.MAR
DSNAP.FOR
DSNAP.FOR
PROJECT.FOR
PFDEXC.FOR
SYSEXC.FOR
NAVEXC.FOR
NAVEXC.FOR
NAVEXC.FOR
NAVEXC.FOR
NAVEXC.FOR
NAVEXC.FOR
NAVEXC.FOR
PTHPOS.FOR
PTHPOS.FOR
PTHPOS.FOR
PTHPOS.FOR
PTHPOS.FOR
PTHPOS.FOR
PTHPOS.FOR
FMTBZL.FOR
Executive module
microprocessor identification
global section mapping tables
data recording
variable snapshots
variable snapshots
time-box positioning
Sperry PFD format
system warning format
navigation format: main
NAV: selected track
NAY: MLS airplane
NAV: trend vector
NAV: altitude range arc
NAY: time-box
NAV: coordinate rotations
NAV: time-box
NAY: time-box
NAY: time-box
NAY: time-box
NAV: time-box
NAV: time-box
NAV: time-box
NAY: bezel panel interface
PFD NASA.FOR Primary flight format: main
PFD--NASA.FOR PFD: altitude scalingm
AIRGAM.FOR
AIRGAM.FOR
WINDOW.FOR
STAR.FOR
STAR.FOR
RWYMGR.FOR
RWYMGR.FOR
PFD: aircraft/gamma symbols
PFD: standoff symbols
PFD: inner window symbols
PFD: waypoint star
PFD: waypoint star
PFD: perspective runway
PFD: perspective runway
PRECEDING PAGE BLANK NOT FILMED
-12-
PFDPK
CASMGR
MSGMGR
GUIDE
SCLXTK
ENGEXC
EPR F1
EPR F2
FFPRC
FTEST
TOPEXC
APLANE
SIMTOP
STPDIS
STPREF
FNSERV
FILL
ASPDCO
EPRF
FINTER
RWYPRD
THCORF
XLIM
ANGL
ASSIGN
GET
GRID
LOCK
MAPCOM
MXV
POLAR
POSBTS
C HDL
REPORT
REPORT CHECK
SHOW TTm
UVC
SCOS
VCP
VDP
VMG
XYZ
BCDTIM
EXCEPTIONS
PFDPK.MAR
CASMGR.FOR
MSGMGR.FOR
GUIDE.FOR
GUIDE.FOR
ENGEXC.FOR
ENGEXC.FOR
ENGEXC.FOR
FFPRC.FOR
FTEST.FOR
TOPEXC.FOR
TOPEXC.FOR
TOPEXC.FOR
STPDIS.FOR
STPDIS.FOR
STPDIS.FOR
FILL.FOR
TOPMS.OLB
TOPMS.OLB
TOPMS.OLB
TOPMS.OLB
TOPMS.OLB
TOPMS.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
UTIL.OLB
PFD: binary packing
PFD: airspeed
PFD: warning messages
PFD: mode control panel interface
PFD: mode control scaling
Engine format: main
ENG: EPR limits
ENG: EPR limits
ENG: fuel flow
ENG: lab simulation
TOPMS format: main
TOP: aircraft dynamics
TOP: simulation
TOP: stopping distance
TOP: stopping distance
TOP: servo response
TOP: I/O memory formatting
TOP: airspeed conversion
TOP: EPR
TOP: throttle positioning
TOP: runway distance
TOP: thrust
TOP: value limiting
angular adjustment
logical names
Fortran address pointers
map coordinates
memory residency
global section mapping
matrix, vector product
X, Y, Z to polar coordinates
map clipping
condition handling
condition handling
condition handling
condition handling
unit vector
sine/cosine
vector cross product
vector dot product
vector magnitude
polar to X, Y, Z coordinates
decode system time
exception messages
-13-
EXECUTABLEIMAGE: DSPSLW
DSPSLWis the displays background processing program.It executes in the spare time remaining after DSPHDL andDSPFST have completed their real-time tasks in the 50 milli-second frame. Each time DSPSLWcompletes its tasks it loopsback to start again, like the real-time images. However thereis no time constraint governing how fast it must complete oneiteration of its computations. Its major function is thecreation of the display data for the navigation format mapbackground. Other functions include the TOPMSpretakeoffcalculations and the PFD status announcements. The followingis a list of the program modules which comprise DSPSLW.
MODULE FILE PURPOSE
DSPSLWPRN ASTLOG ASTSNAPOUTSBXMGRMAPTBLNAVSLWNAVUPDBUSFMTOPTIONAIRPRTARPSMBRUNWAYSTRIPSNAVAI DNAVSMBRADIALPATHSPLANLEGDMATURNWPTXTBOUNDSAREASNEARPTTEXTSTORENAV UTLPROJECTMAP AIRWAYGET XYNAME SIZEPRETKF
DSPSLW.FORDSPSLW.FORDSPSLW.FOR_SNAPOUT.FORSBXMGR.FORMAPTBL.MARNAVSLW.FORNAVSLW.FORNAVSLW.FOROPTION.FOROPTION.FOROPTION.FOROPTION.FOROPTION.FOROPTION.FOROPTION.FOROPTION.FORPATHS.FORPATHS.FORPATHS.FORPATHS.FORPATHS.FORPATHS.FORBOUNDS.FORBOUNDS.FORBOUNDS.FORTEXT.FORTEXT.FORNAV UTL.MARPROJECT.FOR
executive moduleprinter completion ASTdata log completion ASTdata snap-shotsPFD status messagesglobal section mappingmap background executivemap background processingmap background processingmap symbologymap airportsmap airportsmap runwaysmap longitudinal stripsmap navaidsmap navaidsmap radialsmap flight planmap flight planmap flight planmap flight planmap flight planmap flight planmap boundary areasmap boundary areasmap boundary areasmap info linesmap info linesmap background data formattingmap position computations
MAP AIRWAY.FOR map airwaysMAP--AIRWAY.FORmap airwaysMAP AIRWAY.FOR map airwaysPRETKF.FOR TOPMSpretakeoff main
-14-
TOP HDL PRETKF.FORADBW2 TOPMS.OLBATMOS TOPMS.OLBASPDCO TOPMS.OLBOLIMIT TOPMS.OLBONED TOPMS.OLBSEARCH TOPMS.OLBRATE TOPMS.OLBTHCORF TOPMS.OLBXLIM TOPMS.OLBDZONE TOPMS.OLBTHSRVO TOPMS.OLBRWYPRD TOPMS.OLBFINTER TOPMS.OLBEPRF TOPMS.OLBTHROTS THROTS.FORAEROC AEROC.FORENGINE ENGTKF.FORPOLYFT POLYFT.FORSIMEQA POLYFT.FORLNGFM LNG2D.FORSTPDIS STPDIS.FORSTPREF STPDIS.FORFNSERV STPDIS.FORACTRIM ACTRIM.FORANGL UTIL.OLBASSIGN UTIL.OLBCLIP UTIL.OLBPOSBTS UTIL.OLBFMTTIM UTIL.OLBGET UTIL.OLBGET CHAR UTIL.OLBGRID UTIL.OLBLOCK UTIL.OLBMAPCOM UTIL.OLBOTSSFLOAT UTIL.OLBPOLAR UTIL.OLBC HDL UTIL.OLBREPORT UTIL.OLBREPORTCHECK UTIL.OLBSHOWTT UTIL.OLBSCOS UTIL.OLBUVC UTIL.OLBBCDTIM UTIL.OLBEXCEPTIONS UTIL.OLB
TOPMScondition handlerTOPMSintegrationTOPMSatmospheric parametersTOPMSairspeed conversionTOPMSopen-end limiting
TOPMS interpolation
TOPMS table search
TOPMS rate limiting
TOPMS thrust
TOPMS value limitingTOPMS dead zone
TOPMS throttle response
TOPMS runway distance
TOPMS throttle positionTOPMS EPR
TOPMS throttle setting
TOPMS aircraft lift/drag
TOPMS engine model
TOPMS curve fitting
TOPMS solving equations
TOPMS longitudinal axis moments
TOPMS stopping distance
TOPMS stopping distance
TOPMS servo response
TOPMS aircraft trimming
angle limiting
logical assignment
map clipping
map clipping
time formatting
Fortran pointer data
Fortran pointer data
map projections
memory residency
global section mapping
data formatting
X, Y, Z to polar coordinates
condition handling
condition handling
condition handling
condition handling
sine/cosine
unit vector
system time conversion
exception messages
-15-
EXECUTABLEIMAGE: DSPHDL
DSPHDL is the displays executive program. It runs ata priority higher than the other images, therefore it hasthe ability to execute immediately whenever it needs to.DSPHDL sits idle waiting for clock interrupts which occurevery ten milliseconds. A set of five interrupts make upone complete 50 millisecond real-time frame. The majorfunctions for DSPHDL are performing system I/O and signalingthe real-time applications program (DSPFST) when to restarta new 50 millisecond frame. It also scales and formats I/Odata to the proper engineering units. The following is alist of the program modules which comprise DSPHDL.
MODULE FILE PURPOSE
DSPHDLDISFILDOUTIOHDL MESGMAPTBLASSIGNLOCKMAPCOMC HDLREPORTREPORTCHECKUTIL.OLBSHOWTT UTIL.OLBBCDTIM UTIL.OLBEXCEPTIONS UTIL.OLB
DSPHDL.MAR timing, DMA I/O, interruptsDISFIL.MAR input formattingDOUTIO.MAR output formattingHDL MESG.MARerror messagesMAPTBL.MAR global section mapping tableUTIL.OLB logical unit assignmentUTIL.OLB memory residencyUTIL.OLB global section mappingUTIL.OLB condition handlingUTIL.OLB condition handling
condition handlingcondition handlingsystem time conversionexception messages
-17-
Section 2.2 GLOBAL SECTIONS
Global data variables are shared within the softwaresystem through global sections. Global sections are thefastest way a multiple process software configuration canshare data values.
Global sections are areas of physical memory which aremapped into the virtual address space of several activeimages. In the display flight software each global sectionconsists of one relocatable program section following thestandard definition of the VAX Fortran common block. Thedisplays host software uses ten global sections. All buttwo, AADCOMand DISDAT, are defined as Fortran include fileswhich contain one common block definition. The include filesare needed to provide the global section templates to theFortran compiler when compiling the Fortran modules whichmake up most of the displays host software. The other twoglobal sections are macro assembly language files which areassembled directly to produce an object file containing globalsymbol definitions for all common variables. The followingis a list of the global sections with a note on the type ofmemory allocations contained within each.
AADCOMBIUCOMDISDATDISNAVDLNCOMDSPCOMDSRCOMDTCCOMINPCOMTOPCOM
navigation data baseI/O memory for SPERRYmicroprocessorsdefault recording listinput data from FM/FC MicroVAXdata link informationgeneral displays variablesdata recordingI/O memory for aircraft DATAC busformatted DATAC variablesTOPMSvariables
Object files are created for each of the Fortran includefiles by the VAX utility program BLKMAC. The Fortran compileris not used for this since the object modules it creates donot define the individual variables of the common block asglobal symbols. The global symbol definitions are necessaryto allow VAX macro assembly language modules efficient accessto global section variables. The file COMMON.FORexists solelyfor BLKMAC. This file is a Fortran "Block Data" module whichincludes each of the global section template files and alsocontains initialization statements for some of the globalsection variables. BLKMACreads this file and creates anobject file for each common block referenced within.
PRECEDING PAGE BLA:,_K NOT FILMED
-18-
The object files created by BLKMAC are linked into
the program SECTION which is used to create global sections.SECTION is an interactive program that allows the user to
create, refresh, or delete the global sections. Global
sections must be created in memory before any of the display
flight software is started. Note that SECTION will issue
a warning when attempting to delete global sections which
are currently in use by applications software. The user may
choose to proceed with or abort the deletion. If the delete
is not aborted the VAX/VMS operating system removes the
sections from its global section table but does not free the
physical memory until the last image mapped to the sections
has exited. This in effect changes the global sections to
private sections.
Executable images gain access to the global sections
through a call to the utility library module MAPCOM on start-
up. MAPCOM grants read or read/write access to the various
global sections depending on predefined access privilegesencoded in the file MAPTBL.MAR. The utility program GLOBAL
is used to define the access privileges for each process.
GLOBAL creates the ".OPT" files and MAPTBL.MAR used in
linking each executable image.
-19-
Section 2.3 INSPECTING GLOBALVARIABLES WITH VIEW
The program VIEW is used to examine and modify variablesin the VAX global sections defined for flight software. To usethis utility the global sections must have been installedpreviously using the utility SECTION. The VIEW display screencontains two header lines and twenty lines for the placementof variables (see the diagram on the next page). The firstheader line contains the version number of VIEW, the flightsystem identifier to which VIEW was linked, and the date ofthe flight system generation. The second header line showswhich of the four available display pages is currently beingshown. The display lines each have the line number on theleft side of the display. When variables are placed on thedisplay line three additional fields are shown after theline number. First the format code for the variable isshown. This tells how many bytes of data comprise theselected variable, and how the binary value is interpreted.Next on the line is the value of the variable. The lastpart of the display line is the descriptive label used toidentify what variable was placed on the line.
To start the program enter RUN VIEW on an account containinga flight system. VIEW immediately prompts for a password. Thepassword is used to determine the read/write privilege thatVIEW grants to the various global sections. VIEW maintainsdefault privileges for users with no password. The defaultentry into VIEW is gained by simply entering a carriage returnto the password prompt. The person responsible for the flightsystem build selects the access to each global section for boththe default and password users. Refer to appendix B forinformation on the VIEW commands.
-20-
VIEW [V5.1]: TDWR DISPLAYS 12-MAR-1991
Page 11 1.2 0 TOPMS
2 H.2 0020 ENABLE3
4 F.4 -13.1027 ROLL
5
67
8
9
I0
II
1213
14
15
16
17
18
19
20
->ARRAY(16)/F=F.8/R=2/L=6
- FIGURE 2.1 -
-21-
Section 2.4 STARTING AND STOPPING VAX DISPLAY SOFTWARE
There are eleven files needed for a complete displays
host software system. These include the six executable
images described in section 2.1 and the following five files
used to manage the execution of the system.
RUN.COM
This command procedure is used to start the displays host
software. First it checks if an old set of log files are
open (see section 2.5) and closes them if necessary. The
utility program section is automatically run next to allow
the user to install or refresh the global sections. Finally
the sub-processes are spawned and exception log files opened
by calls to GO.COM. Note that the executable image forDSPFST is run twice in RUN.COM. The first time it is run
the sub-process is spawned in total control of the user
terminal with the parent process placed in a wait state.
This must be done to allow an interactive I/O session to
confirm system configuration. DSPFST then exits and returns
control to the parent process. The second time DSPFST is
spawned it is made a joint process allowing the parent
process to continue with control of the interactive terminal.
GO.COM
This command procedure opens the process exception log
file and starts the executable image. It is called once
for each of the three display software processes.
HALT.COM
This command procedure is used to properly terminate
the VAX display software. The first thing it does is close
the exception log files and delete all but the latest three
versions of each. Since the log files are process permanent
files, the logical end-of-file mark is forced to the physical
end-of-file. All three sub-processes are terminated with
the DCL STOP command. Finally the user is given the
opportunity to select automatic removal of the installed
global sections.
GBLNAME.DAT
This information file is used by the utility program
SECTION as a reference to the names of all defined global
sections. This file is also used when creating the software
system. Refer to appendix C for its role in the systembuild.
-22-
SHOWLOG.COM--This command procedure is used to review the current
exception log files while the system is active. Section2.5 (condition handling) has complete information on thelog files.
Once logged into an account containing the afore-mentioned files the user may start the displays software byentering "@RUN" at the console terminal. The user isimmediately prompted by SECTION to choose between installingthe global sections or refreshing a previously installed setof global sections. When this is complete a table iden-tifying the current microprocessor configuration is printedto the screen. This table is generated from informationreceived from the display system. The user must review theformat assignments to make sure the display system hasdetermined correctly in which processors the various formatsare loaded. If the information shown does not depict thedesired display format configuration the user is given theopportunity to correct the problem and try again. Once allthe user interaction is complete the remaining processes arespawned. Finally the utility program DDSTARis automatic-ally run to initialize the default data recording list. Atthis point the standard DCL "$" prompt is issued and theconsole terminal may be used for DCL commands and runningutility programs while the display host software executes.
-23-
Section 2.5 CONDITION HANDLING
Numerous types of exceptional conditions may occur ona VAX/VMS system. These can be both hardware and softwarefaults or traps which occur when the system detects aprogramming error. Without outside intervention the VMSoperating system takes predefined actions through thedefault system condition handler. User defined conditionhandlers may be defined "further up the stack" to interceptexceptions before they reach the system condition handler.The displays software has defined a condition handler toperform special operations for several commonly occurringexceptions.
The system operator is notified of the occurrence ofexceptions in several ways. Each process has an exceptioncounter defined in one of the global sections (HDL ERR,FST ERR, SLW ERR). These variables contain the totalnumber of exceptions that have occurred in each processsince the system was started. The utility program VIEW canbe used to monitor the counters. For most exceptions anexplicit notification is given at the time it occurs. Thenotification consists of a brief message sent to the systemconsole terminal and a detailed description of the exceptionplaced in the process's log file (DSPFST.LOG, DSPHDL.LOG,DSPSLW.LOG). To eliminate unnecessary I/O the terminal andlog file notification will only be made once every fifteenseconds for a repeated exception. A repeated exception musthave both the same error code and originate from the samemachine instruction.
The following is a list of the exceptional conditionshandled by the displays condition handler. Any otherexceptions signaled to the displays condition handler willsimply be resignaled to the the default system conditionhandler after the terminal and log file notifications havebeen posted.
(software traps from VMS math library)
MTH$ SQUROONEG- The square root of negative value errorforces the math library function return value to be zero.No exception message is posted for this error.
MTH$ * - All other math library exceptions also force thefunction return value to zero. Terminal and log filenotification are given for these.
-24-
(hardware faults)
SS$ FLTOVF FSS$--FLTDIV--F - These faults are modified to simulate their
c_rresponding traps since continuation of the applicationssoftware after the fault cannot be done. VMS resignalsthe displays condition handler with the new trap. Notethat the exception counter will be incremented twicebecause of this action.
SS$ ROPRAND- This fault occurs when floating point datacSntains an illegal binary code. There is only oneundefined floating point bit pattern; the sign bit setand all other bits clear (-0). The reserved operand ischanged to a value of zero and the instruction is re-started.
(hardware traps)
SS$ FLTOVFSS$-FLTDIVSS$ INTDIVSS$--INTOVF - These traps are reflected in the exception
cSunters and posted on the terminal and in the log file.The applications software continues afterward with thefollowing instruction. Note that the integer overflowexception currently cannot occur in the software since
the detection is disabled by the Fortan compiler switch
/NOCHECK.
-25-
Section 2.5.1 TOPMS CONDITION HANDLER
A special condition handler is defined during the
pretakeoff calculations performed in DSPSLW. This handler
(TOP HDL) receives all signaled exceptions before the main
dispTay software condition handler is activated. All normal
VMS exception conditions are resignaled to the standard
handler. When one of a few TOPMS related problems occurs a
non-standard condition code is signaled by TOPMS pretakeoff
software. When one of these errors is seen by the TOPMS
handler a stack unwind is implemented which forces DSPSLW to
return to the instruction immediately following the call to
the pretakeoff main module. A flag variable is also set
which invalidates the TOPMS display format.
-27-
Section 2.5.2 EXCEPTION LOG FILES
Exception messages are saved in log files defined foreach process (DSPHDL.LOG, DSPFST.LOG, DSPSLW.LOG). Inactivelog files may be viewed with DCL commands such as TYPE,COPY, or PRINT. When the display software is executing theactive set of log files are accessed with the SHOWLOG.COMcommand procedure. There are three forms available to use.
@SHOWLOG <process name>@SHOWLOG <process name> ALL@SHOWLOG <process name> SINCE
The "ALL" form will display on the user's terminal allexceptions posted in the file, which is empty when thesoftware system is started. The "SINCE" form shows the userthe exception messages posted since the last time theparticular log file was referenced by @SHOW_LOG.The firstform is equivalent to the "SINCE" form.
Each exception message on the log file consists of aheader with the current MicroVAX date and time, followed bythe aircraft Greenwich Mean Time (GMT). Next appears theVMS exception message followed by a traceback of the callframes.
-29-
Section 3.0 I/0 COMMUNICATIONS
In order for display application software (DSPFST,DSPSLW, DDSTAR, etc.) to function correctly, real-time data
from external sources must be input, and processed data
must be output, in a synchronized manner. This is theresponsibility of the process DSPHDL.
DSPHDL initializes system resources to allow external
I/O, to schedule this external I/O, and to control the
subprocesses DSPFST and DSPSLW. DSPHDL also formats I/O
data for/from these processes. The executable imageDSPHDL.EXE is activated either in the context of an
interactive user or the context of a subprocess of an
interactive user which has been created using the DCL SPAWN
command. Upon activation DSPHDL raises its priority intothe realtime region at level 19 which disables quantum
expiration context switching. DSPHDL will then use systemcontext to configure I/O channels for DMA with external
devices (DATAC, BIU, FM/FC MicroVAX, etc). The subprocess
DSPFST will be synchronized into a 50 millisecond frame byDSPHDL using an interrupt from the DATAC. The DATAC will
also supply a 10 millisecond clock for synchronization of
DMA I/O. This I/O data is formatted for use by the displayapplication software by DSPHDL.
j_,L '" ",_,,,,".... ,_ FILMEDPRECEDING PAGE BLANK NOT
-30-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
DSPHDL
DSPHDL.MAR
DSPHDL
(Main Module)
RUN DSPHDL
PURPOSE:
Initializing system resources to allow external I/O, to
schedule this external I/O, and to control the subprocesses
DSPFST and DSPSLW.
DESCRIPTION:
This module is very intimately tied to, and has been
written around, the framework of the VAX/VMS internal arch-
itecture. As such, an understanding of VMS, in particular
those portions relating to virtual memory structure and the
internals of VMS I/O, will be required to follow the method-
ology used in the configuration of this system for DMA I/O.
This understanding may be obtained from the standard VMS
documentation set (in particular Programming Volume 8 -
Device Support, paying particular attention to the sections
mapping I/O space and connecting to an interrupt vector) and
the text 'VAX/VMS Internals and Data Structures' This under-
standing is assumed in this discussion and in source code
comments. The module DSPHDL contains four functional parts.
These include:
I.) Initialization code
2.) Main loop processing
3.) Kernel mode routines used in initialization
4.) Connect to interrupt routines
The following describes each:
i.) Initialization code - This code performs the
following:
A.) Establish an error condition handler.
2.5 for details.
See section
B.) Assign a channel to the default terminal so that
any error messages may be reported there. Also
assign a channel to the TXA5 serial port which is
used for packet radio link communication.
-31-
C.)
D.)
E.)
F.)
I.)
J.)
K.)
L.)
Declare an exit handler which will set process
priority back to level 4.
Set process priority to level 19. This puts the
process DSPHDL into the real time range and will
disable any quantum expiration context switching.
Lock P0 process space into the working set by
calling LOCK. This will reduce the possibility of
page faulting during main loop execution.
Assign a channel number to each of the followingdevices:
a.) XAA0 - DATAC DRVll
b.) XAB0 - Inter-Processor Link (IPL) DRVll
c.) XAD0 - Bus Interface Unit (BIU) DRVll
d.) KWA0 - KWVll
Call MAPCOM to map to the required global sections.
Use $CRMPSC to map to the physical addresses of the
I/O registers for the DRVll and KWVII devices.
This will allow the process to reference physicallocations via virtual addresses.
Call kernel mode routines which compute the virtual
addresses of DMA buffer page table entries for use
in loading Q-bus adapter mapping registers duringthe connect to interrupt start routines. These arediscussed in section 3 below.
Associate to common event flag cluster. These
event flags are used for synchronization of theflight application processes.
Connect to interrupt vectors. A connect to inter-
rupt SQIO is executed for each of the three DRVlland the KWVll devices. This establishes connect
to interrupt init, start, interrupt service, andcancel routines as discussed in detail in section4.
Wait for first 50 millisecond interrupt, thenenable the i0 millisecond clock and start main
loop software.
-32-
2.)
A.)
a.)
b.)
B.)
I.)
Main loop processing. Main loop processing begins
by waiting for either a 10 or 50 millisecond inter-
rupt. Upon determining which interrupt occurred,DSPHDL will either execute major or minor frame
processing for 50 and 10 millisecond interrupts,
respectively. Major and minor frame processingis described below:
Major frame - Major frame processing begins aftera DATAC 50 millisecond attention interrupt. This
occurs in minor frame 4 several milliseconds before
the minor frame 0 interrupt. The minor frame
counter variable MFKAME is set to a -i during this
interval. DSPHDL will, at the beginning of a major
frame:
Read 234 words of raw data from the DATAC SIR
via DRVll into DTCCOM. This includes hexadecimal
SIR addresses 39 through 123.
Format input data for use by display application
software, using DISFIL, into INPCOM, if the var-iable freeze is not set.
Upon completion of I/O, DSPHDL will set event flag64, enabling DSPFST to execute a frame.
Minor frame - There are five minor frames per
major frame (minor frame 0 thru 4). Minor framezero begins with the first 10 millisecond inter-
rupt after the 50 millisecond attention interrupt.Each 10 millisecond interrupt will signal the
beginning of the next minor frame. DSPHDL will
perform the following processing at the beginning
of the specified minor frame:
Minor frame 0 - No I/O is performed here, as it
was done at the beginning of the major frame
(during the MFRAME = -i interval).
Minor frame 1- Nothing performed in this frame.
Minor frame 2 - Enable IPL interrupt for transfer
in frame 3.
-33-
3.)
4.)
4.) Minor frame 3 - Output 181 words (176 words for
recorded data and FM/FC feedback data plus 5
words not used as a pad against corrupted data
possible at the start of a transfer) in OUTCOM
to the DATAC SIR. The corresponding hexadecimalSIR addresses of valid data are from 550 to 5FF.
This data has been previously loaded by theroutine DOUTIO. Also during this frame the
FM/FC IPL transfer occurs, as initiated by an
FM/FC MicroVAX interrupt. The responding handshaking
software in the display MicroVAX resides in the IPL
Interrupt Service Routine (ISR). This hand-
shaking is as follows :
a.) The wordcount for the IPL transfer is loaded
into the DRVII data register by the FM/FC Micro-
VAX for reading by the display MicroVAX. As a
flag, this count is negated if the transfer does
not send the active navigation buffer. For
the active buffer the count is left positive.
b.) The address for the buffer to be received is
loaded into the display MicroVAX DRVll buffer's
address register.
c.) The transfer is initiated.
5.) Minor frame 4 - In this frame the BIU I/O is
performed. This begins with the reception of
320 words of input data from the BIU being read
into the buffer BIU IN. Subsequent to this, 704
words are output from the buffer BIU OUT to theBIU.
Kernel mode routines - These subroutines are calledfrom the initialization software with the $CMKRNL
system service. This code must run in kernel modein order to reference the privileged registers
PR$ POBR (P0 base register) and PR$ POLR (P0 length
regTster). These registers are needed in order to
calculate the virtual address (in S0 space) of the
DMA buffer's page table entry. This value is used
in loading the Unibus adapter mapping registers.
Connect to interrupt code - There is one connect to
interrupt $QIO per device. A connect to interruptSQIO has four associated parts - initialization,
start, interrupt service, and cancel. These four
parts are doubly mapped both in process P0 space
and in system SO space allowing them to run in
system context. The role of each in this appli-cation is described below:
-34-
A.) Initialization - The only function this part hasat present is to store the system mapped address
of the device register block. While not used at
present, this could be used to control a device'sregisters from another device's ISR, should theneed arise.
B.) Start - The start routine is used to load the
Q-bus adapter mapping registers with the physicaladdress of the DMA buffer. This loading is
achieved using the system routine IOC$LOADUBAMAP,which uses as input the virtual address of the
buffer's page table entry (computed in the kernel
mode routines described above). Connect to inter-
rupt start routines normally run at IPL 6, but
since the allocation and loading of mapping reg-isters requires an IPL of 8, the IPL is raised atthe beginning and then lowered back to 6 before
exiting.
C.) Interrupt service routine - This code is executed
when an interrupt is delivered from the associated
device. Except for the BIU handshaking code de-
scribed above in the section onminor frame 3, the
only function the ISR is used for at present is to
clear the device's CSR and optionally set an eventflag. Whether an event flag is to be set after
an interrupt is specified as an input flag to the
connect to interrupt $QIO. Presently, the deviceswhich will set an event flag are the KWVII (event
flag 4, the I0 millisecond clock) and the DATAC
DRVII (event flag 5, the 50 millisecond attentioninterrupt).
D.) Cancel - This code is executed at the time of
process termination, and is used to release mappingregisters that had been allocated.
GLOBAL REFERENCES:
VARIABLES
FRAME*, FRAMES*, MFRAME*, FREEZE, CNT50*, DSPST2*,
HSTCNT*, HDL_ERR*, MSIOML*, MS50ML*, DTC_NRDY*,BIUTO*, IPL NZ*, IPLNR*, DISNAV_BEG, ACT WPTS,
BIU_IN, BIU_OUT, DTC_IN, DTC_OUT, IPER WCR*, IPER_BAR*,IPER CSR*, IPER DAT*
FUNCTIONS AND SUBROUTINES
DISFIL, DOUTI0, LOCK, MAPCOM, IOC$ALOUBAMAPN,IOC$LOADUBAMAP, IOC$RELMAPREG
-35-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
DOUTIO
DOUTIO.MAR
DSPHDL
DSPHDL
JSB DOUTIO
PURPOSE:
TO format 50 millisecond output data from OUTCOM for
DMA to the DATAC SIR.
DESCRIPTION:
DOUTIO is called once per major frame just prior to
DATAC output. It is responsible for formatting and packingdata recording output data. Output data to be formatted is
read from OUTCOM. Variables to be recorded are specified
along with scale factors in the buffer table DASPAR. These
variables are scaled and placed in the buffer DASBF for
output.
GLOBAL REFERENCES:
VARIABLES
DASCAL, MXENT
ARRAYS
DASPAR, DASBF*
-36-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
DISFILDISFIL.MARDSPHDLDSPHDLJSB DISFIL
PURPOSE:TO format 50 millisecond DATAC SIR DMA input data into
INPCOM.
DESCRIPTION:DISFIL is called once per major frame immediately
following a large block input from the DATAC. It is respon-sible for formatting raw input data into a form usable bythe display application software. DISFIL stores formattedinput data into INPCOM.
DISFIL uses the following programmer defined macros:
I.) SMPLXF - Will scale, bias, and/or bit shift a 16 bitinput integer source operand as specified, convert tofloating point, and store the result at a destinationpointed to by R0.
2.) SMPLXB- Tests the specified bit of the source andsets or clears the byte boolean pointed to by R0conditionally.
3.) ASMPLX - Similar to SMPLXFwith the addition of avalidity bit test preceding the conversion. Theresult is stored at the address specified in R0.
4.) GSMPLX- Similar to ASMPLXbut tailored for use informatting GPS raw input data.
5.) SBOOLI - Tests the bit specified and if set will setthe boolean pointed to by R0. Otherwise the booleanis cleared.
GLOBAL REFERENCES:
VARIABLESDTC_IN, (All variables in common INPCOM)*
FUNCTIONS AND SUBROUTINESOTSSPOWRR
-37-
Section 4.0 EXECUTIVE SOFTWARE
The three display VAX applications processes eachhave main modules which are entered directly from VMSwhen their respective executable images are started. Theexecutable image DSPHDL is covered in section #3 and willnot be mentioned again in this section. The processesDSPFST and DSPSLWeach have main modules which aredescribed on the following pages.
Main modules contain operations to setup and initializeitems which effect the entire process in which they reside.They also serve as a caller of subroutines which perform theactual display tasks required to drfve the microprocessordisplay system.
-38-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
DSPFSTDSPFST.FORDSPFSTVMSRUN DSPFST
PURPOSE:DSPFST is the executive module for its process.
DESCRIPTION:DSPFST is the main program module for the executable
image of the same name. VMS transfers control to the startof this module when the RUN DSPFST command is performed.There are two distinct sections in DSPFST. The first con-sists of several operations performed once at the start of
the executable image. The second section consists of things
which are repeated cyclically. Every 50 milliseconds a
sequence of operations are started. When the various tasks
are completed, DSPFST enters a wait state until the next50 millisecond frame is announced.
At the start of the executable image, DSPFST forces all
the program image "pages" into memory. They are locked into
memory to reduce paging I/O during image execution. The
loading and locking operation is performed by the utility
procedure LOCK. It is called by the VMS system procedure
SYS$CMEXEC (change mode to executive). This is done because
user mode does not have enough privilege to bring some of
the image's pages into memory. The privileged pages are the
defined exception messages for the condition handler which
are normally only accessed in executive mode by the operating
system.
After page locking is complete the global sections are
mapped into the executable image's virtual address space.
This is done with a call to the utility procedure MAPCOM.
MAPCOM is passed the name of the image (DSPFST) which is
used to determine which global sections will be mapped and
whether write privileges are to be granted.
If DSPFST is run in interactive mode (see section 2.4)
confirmation of display microprocessor formats is performed
followed by exiting the image. The module DP LOAD is called
to determine which display formats are loaded into the
various microprocessors. A summary is printed to the console
terminal and the system operator is prompted for confirmation
of its correctness.
When DSPFST is not run in interactive mode the remainder
of the startup operations are performed. First the user
defined condition handler is established into the initial
stack frame. Any exceptions occurring in the image DSPFST
will be intercepted on their way "up the stack" to the
system condition handler. The standard output and error
devices are logically assigned to the processes log file
so exception messages may be saved in a file (see section
2.5).
-39-
The DAS recording tables are initialized to the default
recording list by automatically running the utility program
DDSTAR from DSPFST. Section #5 provides ample information
on data recording and the role DDSTAR plays.
The final thing done before entering the real-time
cyclical portion of the module is to connect to a set of
event flags in the operating system to be used for inter-
process signaling. The start of each new 50 millisecond
frame is denoted by the setting of event flag #64.
DSPFST uses the SYS$WAITFR system service to place
itself in a wait state until event flag #64 is set on. Once
this occurs DSPFST will execute over any processes of lesser
priority (all but DSPHDL). The major responsibility of
DSPFST during the 50 millisecond frame is calling procedures
which generate the data buffers used by the display micro-
processors. Data recording procedures are also called at
this time. In addition, several miscellaneous operations
are performed. They include the processing needed when
displays "freeze" has been requested (appendix B), and DSPFST
timing estimates. If event flag #64 is already set when
DSPFST completes the tasks required during the 50 millisecond
frame, a frame time overflow is noted by incrementing theoverflow counter (OVER).
GLOBAL REFERENCES:
VARIABLES
CNT CNT50 COLDST* DISPST* DP TEST* FMTSEL* FREEZE* FSTCNT*
FST ERR* HRSS IWSFLG LABFLG MAPUPD* MAXF* MFRAME NEWFILT*
OVER* TITLE TM ADR* TOINDX TOPMS*
ARRAYS
OUTDAT
FUNCTIONS AND SUBROUTINES
ASSIGN AWAS MGR C HDL DDASOT DP LOAD DSNAP ENGEXC FFPRC
FORSEXIT FTEST INSITU INSITU MGR LIB$ESTABLISH LIB$MOVC5
LIB$SPAWN LIB$STOP LOCK MAPCOM NAVEXC PFDEXC PFD NASA
REC ALERTS SYS$ASCEFC SYS$CLREF SYS$CMEXEC SYS$READEF
SYS_WAITFR SYSEXC TOPEXC
-40-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
DP LOADDSPFST.FORDSPFSTDSPFSTCALL DP LOAD
PURPOSE:TO confirm the display microprocessor configuration.
DESCRIPTION:DP LOAD is called when the process DSPFST is first
started? It parses through the input buffer received fromthe Sperry microprocessor system to determine which displayformats are loaded. This identification procedure is donefor the following reasons.
• The position in the input buffer of bezel button inputsfrom particular formats must be known by the host software.(see appendix A for input buffer layout)
• Navigation formats have custom map background datacreated and sent destined to particular processors.
The system operator may verify the versions of formatsloaded by examination of the format checksums shown on thedisplay.
The process DSPHDLmust already be active when DP LOAD iscalled since it is responsible for performing the I/O whichfills the microprocessor input buffer.
The first thing DP LOAD does when called is to wait twoseconds. Even though the process DSPHDL is spawned beforeDSPFST, DP LOAD can sometimes be called before DSPHDLhasreceived the required inputs.
DP LOAD steps through the input buffer examining thereturn s--tatus location for DPII through DP33. When a formatis loaded in a display microprocessor and operating properlya unique numeric value is stored in the return status whichis used for identification purposes. DP LOAD saves eachformat's ID and checksum to create the confirmation displayplaced on the console terminal. There are two formats whichhave special requirements, the Navigation format and thePrimary Flight format. The MicroVAX display software needsto save the position where these formats return bezel buttonstatus• Also the microprocessor sequence number (1-9) issaved for Navigation formats so map background data may beaddressed directly to individual microprocessors.
-41-
When DP LOAD has examined all nine return statuslocations it--prints its summary to the console terminal. Aprompt message is printed requiring the operator to acceptthe information as correct or reject it. If accepted DP LOADsimply returns. Otherwise a pause message is printed annDP LOAD waits for a keyboard entry from the operator whichinstructs DP LOAD to repeat the microprocessor verificationprocedure.
GLOBAL REFERENCES:
VARIABLESTDW FOUND*
ARRAYSINDAT PFDBZL*
RECORDARRAYSNVFMT*
FUNCTIONS AND SUBROUTINESFOR$CLOSEFOR$OPENGET WORDLIB$STOP OTS$CVTL TZ SYS$SETIMRSYS$WAITFR
-42-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
DSPSLWDSPSLW.FORDSPSLWVMSRUN DSPSLW
PURPOSE:Serve as the executive module for its process.
DESCRIPTION:DSPSLWis the main program module for the executable
image of the same name. VMS transfers control to the start
of this module when the RUN DSPSLW command is performed.
There are two distinct sections in DSPSLW. The first con-
sists of several operations performed once at the start of
the executable image. The second section consists of things
which are repeated cyclically. Each time it completes the
required tasks it jumps to the start and begins again.
At the start of the executable image, DSPSLW forces all
the program image "pages" into memory. They are locked into
memory to reduce paging I/O during image execution. The
loading and locking operation is performed by the utility
procedure LOCK. It is called by the VMS system procedure
SYS$CMEXEC (change mode to executive). This is done because
user mode does not have enough privilege to bring some of
the image's pages into memory. The privileged pages are the
defined exception messages for the condition handler which
are normally only accessed in executive mode by the operatingsystem.
After page locking is complete the global sections are
mapped into the executable image's virtual address space.
This is done with a call to the utility procedure MAPCOM.
MAPCOM is passed the name of the image (DSPSLW) which is
used to determine which global sections will be mapped and
whether write privileges are to be granted.
Next the user defined condition handler is established
into the initial stack frame. Any exceptions occurring in
the image DSPFST will be intercepted on their way "up the
stack" to the system condition handler. The standard output
and error devices are logically assigned to the process's
log file so exception messages may be saved in a file (see
section 2.5).
DSPSLW enters an "infinite loop" where it stays until
the process is stopped by external intervention. The main
function performed here is the creation of data involved
with the map background updates. This is done by the call
to NAVSLW. Other functions include the setting of Primary
Flight Display format status information, initiation of
TOPMS pretakeoff calculations, handling snap-shot data
outputs, and computing background timing estimates.
-43-
GLOBAL REFERENCES:
VARIABLESCNT DATA_LOGDAY* FRAMESHRSS MAGVARORGHDG*ORGLEN* PRINTERPRN_ACTIVE RPTR RWYID* SLWCNT*SLW ERR* SPTR TITLE TKFLENTM ADR* TOPMS* TOPST*
ARRAYSAIRPTS
FUNCTIONS AND SUBROUTINESASSIGN C HDL DAY OF YEAR GET REAL GET WORDHARD COPYLIB$ESTABLISH LIB$SIGNAL LIB_STOP LOCK MAPCOMNAVSLWPRETKF SBXMGRSNAPOUTSYS$ASSIGN SYS$CMEXEC
-44-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PRN AST
DSPSLW. FOR
DSPSLW
VMS
<AST module>
PURPOSE:
Printer completion AST.
DESCRIPTION:
This Asynchronous Trap procedure (AST) is called by
VMS when outputs to the system line printer have completed.
The flag PRN_ACTIVE is cleared to enable use of the printerby other modules.
GLOBAL REFERENCES:
VARIABLES
PRN ACTIVE*
-45-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
LOG ASTDSPSLW.FORDSPSLWVMS<AST module>
PURPOSE:Log device completion AST.
DESCRIPTION:This Asynchronous Trap procedure (AST) is called by
VMS when outputs to the system logging terminal have
completed. The flag LOG ACTIVE is cleared to enable use of
the printer by other modules.
GLOBAL REFERENCES:
VARIABLES
LOG ACTIVE*
-47-
Section 5.0 DATA RECORDING
There are five data recording modules which provide thecapability to record selected data on magnetic tape, paper,and strip charts. The file DISDAT.MAR, linked with theprocess DDSTAR, contains a default list of data items to berecorded through the Data Acquisition System (DAS). It alsocontains a group of alternate tables which provide lists ofvariables to be plotted on the strip charts. DDSTAR is aninteractive program which permits the experimenter to modifythe data recording tables and to set up "snap" tables forprinting selected variables on the experimental systems lineprinter. DDSTARprocesses the recording list informationand stores addresses and scale factors for the DAS.
The module DSNAPworks with tables generated throughDDSTAR. When a user specified condition is encountered,DSNAP saves the associated set of data items. Subsequently,the background module SNAPOUTprints the data values to theline printer.
The subroutine DDASOTtakes the data specified in theDAS lists, formats it, and stores it in the 50 words of DASoutput memory. The strip chart data are also included inthe DDASOToutput, which is routed to the onboard stripcharts by the DAS.
The output from DSNAP and the strip charts is availablein flight. The data stored on the DAS tape is available fora "quick look" soon after the experimental flight is com-pleted. DAS information is available over the long term formore thorough data reduction and analysis.
'tALL_ _b'_N_ PRECEDING PAGE BLANK NOT FILMED
-48-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
DDASOT
DDASOT.MAR
DSPFST
DSPFST
CALL DDASOT
PURPOSE:
TO configure the alternate-tables to control the strip
chart recorders, and to reformat certain data for recording.
DESCRIPTION:
DDASOT first checks the NODAS boolean to determine
whether or not DDSTAR is modifying the recording tables, if
true it exits immediately. DDASOT then checks the globals
RECWD, RECWDI, RECWD2, and RSWADR to determine which set of
alternate tables should be stored in the global DASPAR
parameter list for strip chart recordings. If RSWADR is
clear or if there is a boolean FALSE at the address
contained in RSWADR, then the "normal" table set specifiedin RECWDI is used, otherwise, RECWD2 is used. RECWD
contains the current configuration. If it does not match
the selected pattern, then a new set of alternate tables is
loaded into DASPAR. This will happen when the alternate
tables have been changed through DDSTAR and RECWD is set to
-i. The values in RECWDI, RECWD2, and RSWADR are user
specified through task VIEW as follows:
RSWADR: USAGE
CLEAR = The primary set of alternate tables will be written
to the DASLST strip chart blocks. (RECWDI)
ADDRESS = The address of some discrete, such as MLSVAL, which
will, when TRUE, cause the secondary set of alternate
tables to be used. (RECWD2) (exercise extreme
caution when using this option, check with the system
administrator to ensure VIEW has the same virtual
addresses as DSPFST.)
RECWDI/RECWD2: BIT MAP
BITS 3,2,1,0:
BITS 7, 6, 5,4:
BITS 9, 8 :
Value 0-7,
Value 8-15
Value 0-7,
Value 8-15
Value 0-3,Value 4-15
Use Alt Tables 0-7 for Strip Blk I.
Reserved for future expansion.
Use Alt Tables 0-7 for Strip Blk 2.
Reserved for future expansion.
Use Atl Tables 8-11 for Strip Blk 3.
Reserved for future expansion.
For a normal configuration of tables 0, I, and 8,
RECWDI would be set to 0010 hexadecimal. For a
secondary configuration of tables 4, 5, and 9, RECWD2
would be set to 0114 hexadecimal.
-49-
The most recent table configuration is recorded inRECWD. If this does not match the selected pattern, thenthe table addresses need to be changed. Otherwise, controlpasses to the data processing code at label CONT. DDSTARselects recording table configuration 0010 hexadecimal bydefault.
The alternate-table setup is done at label DOIT. Asappropriate, RECWDIor RECWD2is moved into RECWDas the newconfiguration record. ALTPAR is the source of the newtables. It is loaded by DDSTARfrom DISDAT and/or fromuser input. It consists of 12 tables with 8 entries pertable, 2 long-words per entry. The format and itssignificance are:
LWORDI: Bits 31-25 Unused
" 24 ON denotes an 8 bit variable.
" 23:16 shift count (+ = Left), used to
position integer data for recording.
" 15 SET denotes NOT floating point data
" 14:0 Scale factor for the data.
NOTE: For a floating point variable, the entire longword is
a scale factor.
LWORD2: Address of the data.
The three required tables are identified and
transferred to the first 16 entries (8 x 3) in DASPAR,
the primary DAS recording list which includes both the
alternate tables and the rest of the data list for
recording. On a run where a table change has occurred,
DASOT terminates at this point.
On a nominal run, when the tables are static, DASOT
builds the packed discrete DISOUT and also calculates and
stores the current navigation position errors. The booleans
to be packed into DDISOT are listed locally at label DISLST.
The sign bit of each boolean is shifted left into a register
which, at the end, is shifted to place the bits at 0:9, and
moved into DDISOT. Then, LAT and LON are converted to 32
bit integer data and output as LATFIN and LONFIN.
GLOBAL REFERENCES:
VARIABLES
ALTDIF* ALTPAR DASPAR* DISOUT* GUID2D GUID3D GUID4D IDDLTC*
IDDLNC* LAT LATDIF* LONDIF* LONINS RECWD* RECWDI RECWD2
RSWADR
-50-
MODULENAME:FILE NAME:PROCESS:CALLED BY:
CALLING SEQUENCE:
DDSTAR (Displays DAS/Snap Access Routine)DDSTAR.FORDDSTARA: DSPHDL (on cold start)B: The User (manually)
$CREPRCS
A. VAXHDL:DS PROCNAME: .ASCID /DDSTAR/
IMAGE=DS PROC NAME,- ; DSTAR IMAGE NAME
INPUT=TERM_DESC,- ; USE CREATING PROCESS'S
OUTPUT=TERM_DES,- ; I/O DEVICEBASPRI=#20,- ; PRIORITY 20 (RUNS NOW)
PRCNAM=DS PROC NAME ; SUBPROCESS NAME
B. Manually: RUN DDSTAR
PURPOSE:
A utility to transfer recording parameters for
the Data Acquisiton System (DAS), to accept interactive
modifications to the existing parameters, and to create
parameter tables for the DSNAP routine.
DESCRIPTION:
The primary function of DDSTAR is to load the tables
(DASPAR & ALTPAR) used by DDASOT to select and route data to
the Data Acquisition System (DAS) for recording on tape or
on the aircraft strip charts. This is done automatically
and transparently on system startup (cold start) when DDSTAR
is called by the I/O handler (DSPHDL). In this case, DAS
processing is enabled for whatever data is defined in the
default DAS list, nominally DISDAT. This is an external
file included in the DDSTAR process which is documented
separately in this volume. (DDSTAR defines DISDAT as a
common block containing structured records which correspond
in format and quantity to the entries in DDATA and ATABL,
the 2 global data blocks in DISDAT.)
The secondary function of DDSTAR is to run
interactively and accept user input to modify the DAS list,
or to create or modify the snap tables. Snap tables (SCRIT)
do not pre-exist and can only be created through DDSTAR.
DDSTAR also provides a mechanism for saving/returning snap
tables, DAS changes, and alternate table changes to/from
disk storage.
-51-
The interactive routine is menu driven and generallyself explanatory. However, more detailed instructions willbe displayed at various points if the user selects tutorialsin response to the initial question and prompt: "Do youwant tutorials? Y/N."
There are up to 50 entries in the DDATA section of the
DAS list, each consisting of a name, address, and scale
factor. Entries may be changed, and/or new ones added up to
the limit. Entries 1 through 16 are used for the strip
chart parameters and are organized in two blocks of eight
entries each. Each of these blocks corresponds with 1 of
the 12 alternate tables which may be read into this area by
subroutine DDASOT. These alternate tables are maintained in
the lower section of DISDAT, in the global data block ATABL.
Tables zero through seven relate to blocks one or two. In
either mode of operation, the contents of DDATA and ATABL
are written to the global DASPAR and ALTPAR tables, respec-tively, during the DAS dump routine.
When modifying the DAS list, the user will be requiredto enter scale factors for each data item entered or
changed. These are explained in the DISDAT documentation inthis volume.
Up to eight snap tables may be created. The user
should be prepared to enter the name of the variable to be
used as the key for the snap, the value at which the snapshould occur, the range or "window" if an exact match is
not required, and the names of up to 15 variables to be
"snapped" to the printer when the snap occurs.
When the name of a variable is requested, DDSTAR will
recognize the name of any global variable in any global
section in the system. Local variables or local common
blocks cannot be referenced. Array elements can be
specified with the index in parentheses. A series of array
elements can be inserted as one entry by appending an
asterisk and count to the index. For example, XYZ(3*I5)
will pick up element 3, plus the next 14, for a total of15.
The use of the "bare" carriage return is consistent
throughout DDSTAR. It will terminate the current activity,
such as a series of data entries, and re-display the
previous menu. From any point in the program, three or four
carriage returns, at most, will bring control back to the
main SNAP/DAS option. There is no limit on the direction or
number of times the user may go back and forth through the
various sub-options.
Program exit may be selected in response to several
menus. However, at any point in the program a control-Z
will cause an orderly exit. This is the usual method.
-52-
The exit routine calls the dump routines for whicheverset of tables was modified during the session. For the DASand alternate tables, the dump routines first transfer therecording parameters, then print a list of the tables on theaircraft line printer. For the snap tables, it is onlynecessary to print the list. During an automatic run,nothing is printed. During the first manual run after coldstart, both the DAS and alternate tables will be printed,whether modified or not. Otherwise, only the modified setis printed.
The DDSTARmodule includes ii subroutines and calls oneexternal subroutine (SYM SEARCH).
n
GLOBAL REFERENCES:
VARIABLES
ALTDMP CHCNT COLDST DASDMP DDATE GETNAME* NOSNAP*
PRINTOUT RECWDI* SNAPACT* SNAPDMP SNENT TERM TUTOR
FUNCTIONS AND SUBROUTINES
DASDUMP DASPRC FOR$CLOSE FOR$DATE T DS FOR$OPEN MAPCOMSNAPDUMP SNPRC
-53-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
CHECKDDSTAR.FORDDSTARGITEM, NSNAP, OLDSNAPCALL CHECK
PURPOSE:To return the location in an input string of a ' (*)'
character sequence.
DESCRIPTION:Check returns an index, relative to the beginning of a
character string, of the location of the left parenthesis(LPAREN), asterisk (ASTER), and right parenthesis (RPAREN)if they exist. The variables used by CHECKare located in alocal common area. These variables include CBUF, a 14 characterbuffer containing the input string; CHCNT, a character countwhich may include blanks; and LPAREN, ASTER and RPARENwhichwere previously defined. In addition to the indices returned,CHCNTwill be updated to reflect the elimination of any embeddedblanks.
If the character string is not found, LPAREN, RPAREN, andASTER are set to zero and a return is made to the caller. Anerror check is made to ensure that the left parenthesis occurs
before the right parenthesis. If it does not, the followingmessage is displayed at the user's terminal-
' NO RIGHT PAREN ! TRY AGAIN'.
GLOBAL REFERENCES:
VARIABLES
ASTER* CBUF CHCNT* ERROR* LPAREN RPAREN
-54 -
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
DASDUMPDDSTAR.FORDDSTARDDSTARCALL DASDUMP
PURPOSE:TO setup DASPARfor use by DDASOTand to print the
recording, snap, and alternate tables if requested.
DESCRIPTION:If the DASDMPflag is true, the DAS recording parameters
are transferred to the DASPARbuffer from the temporary areaDDATA. Since this affects the data recording process, the NODASflag is set to inhibit data recording while DASPAR is beingmodified. Likewise, if the ALTDMP flag is true the alternatetable data is transferred to the ALTPAR buffer.
If the PRINTOUT flag is set and DASDMPis true, the DASlist will be printed. If the PRINTOUT flag is set and ALTDMPis true, the alternate tables will be printed.
GLOBAL REFERENCES:
VARIABLESALTDMP DASDMPDDATE DNENT NNAMENODAS* PRINTOUT RECWD*TIME
RECORDARRAYSALTPAR* ATABL DASPAR* DDATA
FUNCTIONSAND SUBROUTINESFMTTIM FOR$IMVBITS
-55-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
DASPRCDDSTAR.FORDDSTARDDSTARCALL DASPRC
PURPOSE:TO serve as the controller for DAS and alternate table
processing.
DESCRIPTION:This module serves as the user interface to DDSTAR for
all DAS and alternate table functions. Menus are dis-played to the user from which the desired functions may beselected. These functions include modifying the DAS list,modifying the alternate tables, writing the DAS or alternatetable modifications to disk, reading the specified DAS oralternate table modifications from disk, and printing the DASlist and/or alternate tables.
The user supplies inputs in response to program promptsonce the desired function is selected. Error checking of inputsis performed and informational messages are displayed to guidethe user through an interactive session.
GLOBAL REFERENCES:
VARIABLESACNT* ALTDMP* ALTFLG* CBUF CHCNT DASDMP*DASFLG* DCNT* DDATEDNENT ERROR* GETDAS* GETOLD* ITNUM MAX* TABLE* TERM* TUTOR
RECORDARRAYSASAV ATABL DDATA DSAV
FUNCTIONS AND SUBROUTINESFOR$CLOSEFOR$OPENGITEM UCASE
-56-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
GITEMDDSTAR.FORDDSTARDASPRC, NSNAP, SNAPMODCALL GITEM
PURPOSE:TO prompt the user for an item name and scale factors
as necessary.
DESCRIPTION:This module serves as the user interface for the input
of any global variable, scale factor, or snap criteria data.These data may be processed from user supplied interactiveinputs or previously saved changes recovered from a disk file.For each global variable name specified, a call is made tothe 'SYM SEARCH' module which searches the global symbol tableto ensure that it is a valid name. SYM SEARCHalso returns thevariable address, type (real,integer,etc.), and length in byteswhich are used for creating the various recording tables or thesnap tables.
As with other DDSTARmodules, this one also provides promptsand processes user supplied inputs. Error checking is performedand messages displayed to guide the user as necessary. Limitchecking is performed on DAS entries and alternate table entries(a max of 50 entries allowed for each for saving on disk).
GLOBAL REFERENCES:
VARIABLESACNT ADR ALTFLG ASTER CBUF CHCNTDASFLG DCNT DNENT* ERROR*GETDAS* GETNAMEGETOLD* ITNUM* LGTH LPAREN MAX REPEAT RPARENSDONESMODSNAPACTSNENT* TABLE TERM* TYP
ARRAYSSNAME*
RECORDARRAYSASAV ATABL DDATA* DSAV* SCRIT*
FUNCTIONSAND SUBROUTINESCHECK SYM SEARCHUCASE
-57-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NSNAPDDSTAR.FORDDSTARSNPRCCALL NSNAPAlternate entry point: CALL GETKEY
PURPOSE:To create a new snap table or to replace the name and
criteria data for a key variable.
DESCRIPTION:This module establishes a snap table by creating the
key variable as input by the user and also prompting the userfor the conditions under which the snap is to occur. A call ismade to 'SYM SEARCH' to search the global variable table forthe key variable to ensure that it is a valid name. As withother DDSTARmodules, prompts are supplied and user inputsprocessed in an interactive session. Error messages aredisplayed as appropriate to guide the user through the session.
The alternate entry point, GETKEY, is used whenever theuser is modifying the key variable of an existing snap table.
Once this determination is made, the logic path is followed
as for the main entry point NSNAP.
GLOBAL REFERENCES:
VARIABLES
ADR CBUF CHCNT ERROR* ITNUM* LGTH LPAREN MAX* NNAME NNENT
RPAREN SDONE SNENT* TABLE* TERM* TUTOR TYP
ARRAY S
SNAME *
RECORD ARRAYS
SCRIT*
FUNCTIONS AND SUBROUTINES
CHECK GITEM SYM SEARCH UCASE
-58-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
OLDSNAPDDSTAR.FORDDSTARSNPRCCALL OLDSNAP
PURPOSE:TO read or write a snap table to or from a disk file.
DESCRIPTION:If a file is to stored on disk, a test is made to ensure
that a snap has been defined, if not a message 'NO SNAPSDEFINED, NOTHING SAVED' is displayed. If a snap has beendefined, the user is requested to enter a file name. Errorchecking is performed for all I/O operations and an appropriatemessage is returned for any detected errors. A successfulwrite operation is announced by the message ' SNAP TABLES SAVEDON FILE filename' where 'filename' is the user supplied name.
If a file is to be recovered from disk, the user isrequested to enter the desired file name. As for the storefunction, error checking is performed for all I/O operationsand appropriate messages returned for any detected error.When the data have been read from disk, each entry is processedas if it were entered from the keyboard. This ensures thatdata requested from older versions of the flight software arevalid with the current version. Once again, an error messagewill be displayed for any variable not found in the currentglobal symbol table. If no errors are detected, the message'SNAP TABLES RECOVERED'is displayed on the user's terminal.
GLOBAL REFERENCES:
VARIABLESADR CBUF CHCNTERRORLGTH LPARENRPARENSNAPDMP*SNENTSNPSAV* SRST* TYP
ARRAYSSNAME
RECORDARRAYSSCRIT*
FUNCTIONS AND SUBROUTINESCHECKFOR$CLOSEFOR$OPENSYM SEARCH
-59-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SNAPDELDDSTAR.FORDDSTARSNPRCCALL SNAPDEL
PURPOSE:To delete a previously entered snap table.
DESCRIPTION:This routine is used to delete a snap table from the
current working set of DDSTARsnap tables. It is not usedto delete previously saved snap tables from disk which maybe accomplished by using the appropriate VAX/VMS commands(See VAX/VMS DCL Dictionary for details). The desiredsnap table number for deletion is entered by the user priorto this routine being called by SNPRC.
GLOBAL REFERENCES:
VARIABLESDEL* SNENT*
ARRAYSSNAME*
RECORDARRAYSSCRIT*
FUNCTIONS AND SUBROUTINESFORSBITEST
-60-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
where:
SNAPDUMPDDSTAR.FORDDSTARDDSTAR, SNAPMODCALL SNAPDUMP(tnum,nent)tnum - table number to dump (zero indicates
all tables are to be dumped)nent - output parameter containing number of
entries found in the table.(n/a when tnum is zero)
PURPOSE:To print a copy of the selected snap table(s).
DESCRIPTION:This routine displays the specified snap table at the
user's terminal or all snap tables on the onboard lineprinter if 'tnum' is zero. It may be used to review snaptables prior to flight or storing them on disk. It may alsobe used to obtain a listing of the current working set of snaptables for record keeping purposes.
GLOBAL REFERENCES:
VARIABLESDDATE SNENT TIME
ARRAYSSNAME
RECORDARRAYSSCRIT
FUNCTIONS AND SUBROUTINESFMTTIM FOR$BITEST
-61-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SNAPMODDDSTAR.FORDDSTARSNPRCCALL SNAPMOD
PURPOSE:TO modify an existing snap table.
DESCRIPTION:This routine permits the user to modify a previously
completed snap table. The snap table to be modified isentered by the user in response to a program prompt priorto this routine being called by SNPRC. Modifications arethen made in response to program prompts which guide the userthrough a session. Inputs are error checked and appropriatemessages displayed on the user's terminal when errors are
detected. Any data in the snap table may be modified includ-ing the key variable.
GLOBAL REFERENCES:
VARIABLES
CBUF CHCNT ERROR* GETNAME* ITNUM* MAX* MOD NNENT* SMOD*TABLE* TERM*
ARRAYS
SNAME *
RECORD ARRAYS
SCRIT*
FUNCTIONS AND SUBROUTINES
GETKEY GITEM SNAPDUMP UCASE
-62-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SNPRCDDSTAR.FORDDSTARDDSTARCALL SNPRC
PURPOSE:TO serve as the executive routine for all snap
processing.
DESCRIPTION:SNPRCprompts the user for desired snap table actions
and calls the appropriate subroutines to accomplish them.These actions include creating/modifying snap tables,recovering snap tables from disk, and preserving snap tableson disk.
GLOBAL REFERENCES:
VARIABLESCHCNTDEL* MOD* NNENT* SNENT SNPSAV* TERM*
FUNCTIONS AND SUBROUTINESNSNAP OLDSNAPSNAPDELSNAPMOD
-63-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SYM SEARCHSYM SEARCH.FORDDSTARDDSTARCALL SYM SEARCH(SYMBOL,ADDRESS,FORM,SIZE)
PURPOSE:To look-up information about a flight software global
variable.
DESCRIPTION:The name of a flight software global variable is passed
as a character string, by descriptor, to SYM SEARCHas thefirst calling parameter. The address, format, and bytelength associated with the variable are returned through theremaining three call list parameters. When the symbolicname is not found in the global symbol table, all the returnvalues are zeroed.
The global symbol table is a group of symbol infor-mation packets having the following format.
Name lengthName
• Addressformat codememory length
1 bytevariable length4 bytes1 byte1 byte
The format codes have the following meaning. The first twoboth have the same machine data representation (floatingpoint). The utility process VIEW differentiates betweenthese by using floating exponential format to displayvariables with a format code of "2"
1 floating point2 floating point3 signed integer4 unsigned hexidecimal5 ASCII
The symbol search starts at the begining of the globalsymbol table• Both the start address of the table and thenumber of entries, a global constant, may not be accesseddirectly from Fortran because of their definition. They areaccessed by SYM SEARCHby declaring them external proceduresand using the %LOCoperator to obtain their value. Theutility functions GET BYTE and GET LONGare used to fetchdata from the table as it is searched. The library function
-64-
STR$COMPAREis used to find a match in symbol names. Sincethis function requires character string inputs, a descriptoris constructed and passed to STR$COMPAREto make the globalsymbol table name appear as a character string.
GLOBAL REFERENCES:
VARIABLESSYMNUM
ARRAYSSYMTAB
FUNCTIONS AND SUBROUTINESGET BYTE GET LONG STR$COMPARE
-65-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
where:
UCASEDDSTAR.FORDDSTARDASPRC, GITEM, NSNAP, SNAPMODCALL UCASE(cbuf, chcnt)cbuf - character buffer containing datachcnt - number of characters to convert
to upper case
PURPOSE:To convert lower case ASCII characters to upper case.
DESCRIPTION:The input characters are tested to ensure that they
are in the range a - z and then converted to upper case ifthey are. Otherwise the characters remain unchanged.
GLOBAL REFERENCES:none
-66-
MODULENAME:FILE NAME:PROCESS:CALLED BY:
DISDATDISDAT.MARDDSTARNone (Components are addressed by theirglobal names: ATABL, DDATA, DNENT)
PURPOSE:To provide a list of data parameters for recording.
DESCRIPTION:DISDAT is the component of the DDSTAR task which
contains the default list of data from the Displays computer
to be recorded by the Data Acquisition System (DAS). It
contains up to 50 names and corresponding scale factors. Of
these, the first 16 specify the output to the strip chart
recorders. There is also a group of 12 alternate tables
with eight entries each. Two of these may be selected
during flight to be read into the strip chart block entries
one through sixteen.
DISDAT consists of two functions and two global data
blocks. The data block DDATA contains space for 50 entries
and the block ATABL contains space for 12 tables of 8
entries apiece. Entries are of the form:
i) .ASCII /ZHAT FINE /
REAL ZHAT, 512.
2) .ASCII /YHAT COURSE /
INTEG YHAT, 2048.
3) .ASCII /EVENT7 /
INTEG HOLDM, 2048.,B
The ASCII name field may contain any 12 printable
characters or symbols except for a slash. The function REAL
will, at assembly time, convert and store the second line as
an address and a scale factor in floating point format. The
function INTEG does the same except that it stores the
address with a negative sign and, if there is a third
parameter such as in the third example, then the scale
factor is stored with negative magnitude. This indicates a
one-byte variable. When the file is ultimately processed by
DDSTAR, a positive address signifies that the variable is a
real number, a negative address that it is an integer, and a
negative scale factor that it is a boolean value.The scale factor is a decimal number which determines
how the data will appear on a strip chart, either on the
aircraft or in the post-flight data reduction phase.
Starting from a value of zero at the centerline of the
chart, the scale is the number at which the needle will be
-67-
at the edge of the chart. When this limit is exceeded, therecorder "wraps-around"; the needle jumps to one side or theother and continues reflecting relative changes in the data.Thus, aircraft altitude, scaled at 500.0, would wrap quicklyas the aircraft climbs or descends, but it would give a goodrecord of small changes from level flight. Scaled at itsmaximum range, say 40,000 feet, the resolution of thealtitude plot would be very poor.
Scale factor determination must consider theresolution available in the DAS and on the strip chartrecorders. The DAS records the most significant 16 bits ofdata. The recorders can display only 12 bits, including thesign bit. The on-board recorder displays the mostsignificant 12 bits. In post-flight analysis, the recorderscan display any 12 bit string in the word.
If data of large magnitude is scaled to display smallchanges on the strip chart and if it is also necessary torecord it at its actual magnitude, then it can be recordedtwice. However, to permit post-flight reconstruction, thescale factors must be determined such that there is anoverlap of significant bits. This can be done by relatingthe scale factors to some power of 2, up to 2 ** 15. Forexample:
REAL POSHAT+I0,100.REAL POSHAT+I0,204800. ;
53 ZHATF FEET54 ZHATC FEET
The i00 scale factor for ZHATF will produce good resolutionfor small changes. At i00 * (2"'11) the scale for ZHATC,204800 feet, is slightly more than the maximum range of ZHAT(32 miles) and it provides a 5 bit overlap in the 16 bitwords. Boolean data items are usually scaled at 2048, whichequates to full displacement of the needle.
The comment section of a DDATA line also requires
attention because some of the fields are parameters for one
of the data reduction programs (CALDAS). The line length
may not exceed 72 columns. The last word on the line
specifies the unit of measurement. This field may not
exceed 10 characters and it may not contain embedded blanks,
commas, or slashes. Left-leaning slashes and underlines are
acceptable. Any type of unit may be specified, but
discretes must be indicated by the word "discrete." In the
case of a "packed discrete," then those two words must be
present. Abbreviations are not acceptable.
The alternate tables are short versions of DDATA.
Tables O through 7 are for real or integer data. Tables 8
through II do not differ from tables 0 through 7. However,
there is a hardware strip chart recorder interface
limitation that requires these tables to contain only
booleans defined as integers (INTEG). Specifically DAS
channels 17-24 must contain only booleans for onboard strip
chart recording.
-68-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
DSNAPDSNAP.FORDSPFSTDSPFSTCALL DSNAP
PURPOSE:TO record snapshot values of user specified
variables according to user defined criteria.
DESCRIPTION:The DSNAP routine records single-event values, called
snapshots, for selected variables and stores them inSNAPBUF, in DSRCOM, for subsequent output to the lineprinter by the SNAPOUTroutine. There are 5 snapshotcriteria tables (SCRIT), each a structured record whichcontains a key variable address, the criteria under whichthat variable should cause a snapshot recording, and a listof up to 15 addresses for the data to be sampled when thesnapshot occurs. (See the SCRIT table documentation in theDSRCOMlisting.) These tables are set up by the userthrough the DDSTARprocess.
DSNAPchecks as many snap tables as have been definedin DDSTAR (indicated by SNENT). First, the type of the keyvariable is determined from the STYPE sub-field in the SCRITtables. Depending on whether the key is an integer, real orsingle-byte, the current value is picked up through a callto GET WORD, GET REAL, or GET BYTE, respectively. All threetypes are processed similarly? The specified criteria maybe that the current value be less than, equal to, or greaterthan the threshold. If equality is specified, then a"window" will also have been specified and some approxi-mation of equality will be acceptable. If the specifiedcondition is met and a snap has not already been done forthis condition, then subroutine DUMPis called and the "SNAPDone" bit is set in the type word. If a snap has been donefor the specified condition, then, if that condition is nolonger true, the "done" bit is cleared and that snap
re-enabled. Thus, only one report is generated each time
the condition is satisfied.
That single-byte key variables may be booleans or
single-byte integers is irrelevant; both possibilities are
checked as if they were integers. A FALSE condition is
recognized by a value of exactly zero, TRUE is the least
significant bit set. This could also be true for a single-
byte integer but the difference is significant only for
subroutine SNAPOUT to determine the labelling when the snap
is printed.
-69-
Subroutine DUMP first increments SPTR (modulo-4) totell SNAPOUTthat a new snap has been recorded, then itstores the number of the snap in the 16th entry ofSNAPBUF(n).SDATA. Next, for as long as there is an address(up to 15) in SCRIT{n)_SLADR, the address list, it deter-
mines the type and byte count of each variable in the list,
collects the value at the address through calls to GET WORD,
GET_REAL, or GET_BYTE, as appropriate, and finally sto_es
them as integers or real numbers in the first 15 entries of
SNAPBUF(n).SDATA (or .SDATR). A flag is set to indicate
whether the variable is an integer or a real number, or elsethat there was an error or the end of the list.
GLOBAL REFERENCES:
VARIABLES
NOSNAP RPTR* SNENT SPTR* SRST*
RECORD ARRAYS
SCRIT*
FUNCTIONS AND SUBROUTINES
DUMPS FOR$BITEST GET BYTE GET REAL GET WORD
-70-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SNAPOUTSNAPOUT.FORDSPSLWDSPSLWCALL SNAPOUT
PURPOSE:TO format and print snapshot recordings on the
aircraft line printer.
DESCRIPTION:SNAPOUTprints out snap data whenever new snapshots
have been added to the snap buffer (SNAPBUF(n).SDATA). Theglobal counter SPTR is set by the SNAP routine when a newsnap is stored. The global counter RPTR is set by theSNAPOUTroutine when the snap is printed. If the twonumbers do not agree, then one or more snap lists remain tobe printed and DSPSLWmakes the call to SNAPOUT. Bothcounters are modulo-4. SNAPOUTprints one list per call.
If a snap is to be printed, SNAPOUTfirst incrementsthe read counter RPTR and then formats a header line withthe snap number, the name, the time, and the snap criteria,storing these in the output buffer OBUF. It then takes oneentry at a time from the snap buffer, checks the form(integer, real or boolean), performs the necessary conver-sions, and stores the ASCII value in the output buffer. Itrepeats this for 5 entries per line, for 3 lines, or untilthe buffer is empty.
Because SNAPOUTrequires a change in the I/0 device,printing must be synchronized at the executive level. Theflag PRN_ACTIVE is used to signal that I/O is in progressand the output is then initiated through a call to SYS$QIO.Subroutine PRN_AST, specified in the QIO statement, clearsPRN_ACTIVE when the I/O is complete.
GLOBAL REFERENCES:
VARIABLES
PRINTER PRN ACTIVE* RPTR
RECORD ARRAYS
SNAPBUF
FUNCTIONS AND SUBROUTINES
LIB$SIGNAL OTS$CNVOUT OTS$CVT L TI PRN AST SYS$QIO
-71-
Section 6.0 NASA PFD SOFTWARE
The PFD format shows the current aircraft attitude andprovides other critical "aircraft state" information to thepilot. Refer to the PFD format drawing at the end of thissection.
The most outstanding section of the PFD format is therectangular area around the screen center that is topped bya 106 degree arc segment. This area is referred to as thePFD view window. Within the window a number of symbolsappear that depict aircraft roll, pitch, yaw, actual andreference flight path angle, angle of attack, and trackangle information. Three dimensional representations of the"TO" waypoint and the destination runway are displayed inthe window along with a flare guidance cue, radar altitude,and alert messages.
Angular perspective in the window is provided by thepitch grid and horizon ticks. The pitch grid has a doublesolid line representing the horizon which separates the skyfrom the ground, along with parallel grid bars spaced in 5degree increments. Along the horizon line, tick marks arespaced to show i0 degree steps of horizontal displacement.The other window symbology is interpreted against the gridand ticks to ascertain proper angular readings. The areafrom the horizon line to the top of the view window israster filled in blue to easily distinguish the sky/groundboundary formed by the horizon line. At the top of thewindow along the arc is a roll scale which uses a triangularpointer to designate current aircraft roll angle. The rollangle read from the scale corresponds to the amount of rota-tion applied to the horizon line within the view window.
On either side of the view window are gray raster filledrectangular areas called the airspeed and altitude tapes.They have tick marks and numeric values which can slidevertically giving the appearance of a rolling measurementtape.
The airspeed tape, on the left side of the view window,has the current aircraft airspeed value in the blacked outarea at the center of the tape. A blue, amber, or greenpointer box may also appear at the appropriate spot on thetape representing the current airspeed selection from thepilot's mode control panel. When airspeed is changing anelongated arrow will grow from the tape center verticallyalong the outside of the tape ticks and point to theairspeed that will be reached in ten seconds at the currentrate of acceleration or deceleration. Also along the sameedge of the airspeed tape is a wedge marker that indicatesthe upper airspeed suggested for the current aircraft flapsettings. Directly below the airspeed tape the selectedairspeed value, that corresponds to the airspeed pointerbox, is shown in either green or amber. The aircraft machnumber is shown above the airspeed tape when the valueexceeds 0.5.
-72-
On the right hand side of the view window is the alti-tude tape. Similar to the airspeed tape, the current air-plane altitude is shown in the blacked out area at the tapecenter. Alongside the sliding altitude tape on the rightis the vertical speed scale. A yellow arrow grows from thecenter indicating the rate of change in altitude in unitsof thousands of feet per minute. A blue, amber, or greenpointer box may also appear on the altitude tape represen-ting the selected altitude from the pilot's mode controlpanel. An amber or green triangular pointer whichrepresents the vertical profile of the aircraft's flightplan may also appear along the altitude tape edge. Theglideslope pointer and scale are shown just to the left ofthe altitude tape when selected. These appear as a set ofdeviation dots with a diamond shaped pointer. Included inthe pointer are the letters "GP" or "GS" standing for glidepath (MLS) or glideslope (ILS) respectively. The dots andpointer may be green or amber. Immediately below thealtitude tape area is the barometric pressure setting fromthe pilot's control display unit (CDU). The selecteddecision height value appears above the altitude tape.
The horizontal deviation indicators and scales arepresented below the PFD view window. Horizontal deviationfrom the aircraft's flight plan is shown by an amber or greenbox pointer, entitled "HOR", placed above a deviation scale.MLS azimuth or ILS localizer deviations are shown by atriangular pointer placed directly below the HOR deviationscale. The pointer indicates position relative to fivedeviation "dots" which appear along the bottom edge of theHOR scale. The pointer and dots may be shown in amber orgreen.
The corners of the PFD display contain information
pertaining to the current control and guidance modes of the
airplane. The upper left corner shows the current control
and auto-throttle mode. The destination waypoint of the
flight plan is shown in the upper right corner. The
currently selected horizontal and vertical guidance modes
are shown in the lower left and right corners respectively.
Both armed and engaged modes are announced, color coded
in amber (armed) and green (engaged).
The three upper right bezel panel buttons are active
on the PFD format. They are used to select the waypoint
star, perspective runway, and alert messages in order from
the top.
Only the right hand potentiometer, which controls the
value of the decision height, is used for the PFD format.
-73-
The interpretation of some of the symbology in the PFDwindow is affected by the "Velocity Vector" mode. Thismode changes the orientation of the symbols within thewindow. The display is considered in a velocity vector modewhen velocity control wheel steering (VCWS) or automaticguidance with pilot selectable flight path angle (FPASEL)is being flown. The current mode can be identified fromthe display screen by viewing the "Gamma wedge" and "Air-craft" symbology. In the velocity vector mode the gammawedge is a large stationary symbol, positioned at the screencenter. The small aircraft symbol moves relative to thegamma wedge to depict angle of attack and drift angle. Inthe standard mode a large aircraft symbol is fixed .8375inches above screen center• Angle of attack and drift angleare shown by the small moving gamma wedge. In either casethe pitch and flight path angle values associated with thesesymbols can be read directly off the pitch grid. The ori-entation of three items within the view window are affectedby velocity vector mode. They are the "Star Waypoint","Perspective Runway", and "Horizon Ticks" symbols. Thesethree objects all represent positions relative to the air-craft body in the standard mode as follows.
STAR The 3D position of the next waypoint.
RUNWAY The 3D perspective outline of the destinationrunway.
• TICKS The angular displacement to the nearest tendegree heading markers.
All three are representations of what would be seen throughthe pilot's view window. Since the airplane typically fliesin a direction slightly different from the direction pointedto by the aircraft body, the use of the above mentioned sym-bols is limited. When the aircraft is approaching a refer-ence point, such as the runway, the nose of the airplaneusually will be pointing away from it because of drift angleand angle of attack. Therefore the object will be displacedfrom the center of the screen, corresponding to being off tothe side or top of the pilot's view window. This problem isrectified by the velocity vector mode. Instead of orientingsymbols relative to the direction indicated by the aircraftbody, they are aligned in the direction the aircraft ismoving (inertial axis).
-75-
TDA22
OH200
1000
- 500
Z 0130- 000
- -500
29,92
-6
-3
:2-1
-1
-2-3
-6
IN
MLS AZ o o _o
o oMLS GPFLARE
PRIMARY FLIGHT DISPLAY
-figure 6.1-
' _/'_I . ,r_ T _'t,_lPRECEDING PAGE BLANK NOT FILMED
-77-
Section 6.1 NASA PFD PROCEDURES
Sixteen procedures are dedicated to the creation of
display buffer data for the Nasa PFD format. The following
chart lists the procedure names along with their source
code language and relative size. Those modules that serve
as utility subroutines to another procedure are shown with
their caller. The size provided is the percentage of total
PFD software memory usage.
Refer to Appendix A to identify which locations in the
output buffer (OUTDAT) are used by these modules. Note that
locations used for this format are tagged in the appendix bythe mnemonic "PFD". The following pages include module
descriptions for each of the sixteen NASA PFD software
procedures.
MODULE SOURCE SIZE
AIRGAM FORTRAN 9%
STAND OFF
CASMGR FORTRAN 2%
GUIDE "FORTRAN 18%
SCLXTK
MSGMGR FORTRAN 12%
PACK VAX MACRO 3%
PFD NASA FORTRAN 16%
RWYMGR FORTRAN 17%
SCREEN
SBXMGR FORTRAN 3%
STAR FORTRAN 14%
LIMITS
UNPACK VAX MACRO 2%
WINDOW FORTRAN 5%
PRECEDING PAGE BLANK NOT FILMED
-78-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
AIRGAMAIRGAM.FORDSPFSTPFD NASACAL_ AIRGAM
PURPOSE:TO compute the positions of the aircraft and gamma
wedges and their standoff symbols.
DESCRIPTION:This module determines where the aircraft and gamma
wedge symbols are positioned and calls the procedureSTAND OFF to perform the computations required for the"stand off" portions of these symbols. The gamma wedges andaircraft symbol are oriented differently in velocity vector
mode (vvmode), and non-velocity vector mode. For a detailed
description of when velocity vector mode is active, consultSection 6.0 in this document. If "vvmode" is active, the
gamma wedges are fixed at the screen center and the aircraft
symbol moves around the screen relative to the gamma wedges.
The aircraft X and Y positions are based on the rotated yaw
(BETAX) and rotated angle of attack (ALPHAX) values respec-
tively, which are computed in the module PFD NASA. The term"rotated" means that these values are transformed into the
pitch axis.
The gamma wedge standoff symbol will appear in "vvmode"
if the pitch column is stabilized (indicating no new flight
path angle is being commanded), and the difference between
actual and commanded gamma is greater than 1.5 degrees. The
standoff symbol is a red dashed diamond, the same size as
the diamond in the middle of the gamma wedges. The standoff
symbol will be displaced directly above or below the gamma
wedges by the degree difference of actual and commanded
gamma. As the two values converge, the standoff symbol will
move closer to the gamma wedges until it is within the 1.5
degree range - at which time it will disappear.
When "vvmode" is not valid, the aircraft symbol be-
comes the fixed object on the screen. It is positioned at
.8375 inches above the center of the screen, which in effect
defines a new screen center. The gamma wedges will now move
relative to the aircraft, with its position based on the ro-
tated angle of attack and rotated yaw values.
There is also a standoff symbol for the aircraft. It
will appear if the attitude control wheel steering button
has been pressed on the pilot's mode control panel, no pitch
column input is being received, and the difference between
actual and commanded pitch is greater than 1.5 degrees.
-79-
The aircraft standoff symbol is also composed of red dashedlines, and resembles a "w". It is actually the same sizeand shape of the middle section of the aircraft symbol. Theaircraft standoff symbol is displaced above or below theaircraft by the actual and commanded pitch difference.
It should be noted that the moving aircraft and gammawedge symbols are limited to the sides, top, and bottom ofthe PFD window, so that they will never disappear entirelyfrom the screen. Also, the standoff symbols are limited tothe top or bottom edge.
Although AIRGAM does not specify it, there are two setsof aircraft and gamma wedge symbols for "vvmode" and "non-vvmode". In "vvmode" the gamma wedges fixed at the screencenter are large, while the moving aircraft is smaller. In
"non-vvmode" the fixed aircraft is larger, and the moving
gamma wedges are smaller. The displays microprocessor soft-
ware is responsible for determining which set of symbols is
displayed.
GLOBAL REFERENCES:
VARIABLES
ACWS AIRCFX* AIRCFY* ALPHAX BETAX FPAPFD GAMC GAMMA MXALF
PITCH PITFLG RLLFLG STDOFF* VVMODE
FUNCTIONS AND SUBROUTINES
STAND OFF XLIM
-80-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
STANDOFFAIRGAM.FORDSPFSTAIRGAMCALL STAND_OFF(FLAG, DELTA, INIT, BIAS)
PURPOSE:TO compute the "stand off" symbol offsets from the
gamma wedges or aircraft symbols.
DESCRIPTION:STAND_OFFis a utility subroutine called solely by the
procedure AIRGAM. Four values are passed in as formalparameters. The first is a logical value which signalswhen the proper conditions exist for a "stand off" symbol.The next value is the angular difference between the actualand commanded aircraft parameter being processed by AIRGAM.This value is filtered with a half second time constant tosmooth transitions. When the filtered value is above 1.5degrees the standoff symbol is enabled. A filter initial-ization flag is the third parameter. The last parameterpassed to the module is a bias value which is added directlyto the computed stand off position. This is for the 5 degreeoffset of the aircraft symbol used when not in a velocityvector mode.
-81-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
CASMGRCASMGR.FORDSPFSTPFD NASACALL CASMGR
PURPOSE:Compute data values associated with the PFD airspeed
tape.
DESCRIPTION:The calibrated airspeed (CAS) tape is located on the
left side of the PFD format. The current aircraft airspeedis shown in the window fixed in the center of the tape area.The acceleration segment is a yellow arrow which starts atthe actual airspeed box and extends vertically to theairspeed value which will be obtained in ten seconds at thecurrent rate of acceleration or deceleration. Referenceairspeed is depicted on the display in two ways. A pointerbox is placed along the airspeed tape at the positioncorresponding to the desired value. Also the referenceairspeed value is shown under the tape.
CASMGRcomputes values for the acceleration segmentlength, reference airspeed, and actual airspeed. Thefixed point binary values sent to the displays are scaledto provide the resolution required for accurate presentationon the PFD screen. Reference airspeed is obtained directlyfrom the value selected on the pilot's mode control panel.Aircraft calibrated airspeed is filtered to remove signalnoise and used as the display CAS value. A one second lagfilter is also applied to find the airspeed rate of change.The display acceleration segment length is derived from theairspeed differential.
The color used for the display of the reference air-speed is set in CASMGR. Logical values from the pilot'smode contol panel are tested to determine the correctsetting of the color index sent to the PFD format.
GLOBAL REFERENCES:
VARIABLESACCSEG* CAS CASACT* CASF CASFLG* CASREF* IASARM IASSELIASSUM
-82-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
GUIDEGUIDE.FORDSPFSTPFD NASACALL GUIDE
PURPOSE:Process PFD horizontal and vertical modes as dictated
by the pilot's mode control panel.
DESCRIPTION:This procedure serves as the interface between the PFD
format and the pilot's mode control panel. The horizontaland vertical guidance modes selected on the mode controlpanel are reflected in various types of color coded PFD textand symbology. The three light colors which may appear onthe mode control panel are blue, amber, and green. Theysignify that the various modes are preselected, armed, orengaged respectively. The associated PFD format symbologyfollows the mode contol panel color coding to provideclear correspondence between the cockpit readout devices.
GUIDE performs its processing in the five steps listedbelow.
. Process the engaged vertical axis mode• Process the armed vertical axis mode• Process the preselected vertical axis mode. Process the engaged horizontal axis mode. Process the armed horizontal axis mode
Note that there are not any preselected horizontal axismodes.
The remainder of this module description shows thevarious modes available in the horizontal and verticalguidance axes. The PFD symbology affected by the guidancemodes is also included.
VERTICAL AXIS
GUIDANCEMODESAuto land flareAuto land glideslope (GPS)Auto land glideslope (MLS)Auto land glideslope (ILS)Vertical pathAltitude selectionFlight path angle selection
-83-
PFD SYMBOLOGYGlideslope bug and scaleVertical path deviation pointerFlight path angle reference barSelected altitude pointer boxSelected altitude readoutVertical mode readout (both armed and engaged)
HORIZONTALAXIS
GUIDANCEMODESAuto land localizer (GPS)Auto land localizer (MLS)Auto land localizer (ILS)Horizontal pathTrack selection
PFD SYMBOLOGYLocalizer bug and scaleHorizontal path deviation pointer and scaleHorizontal mode readout (both armed and engaged)
GLOBAL REFERENCES:
VARIABLESALTARM ALTCORALTREF* ALTRFV* ALTSEL ALTSUMAUTO BETAH DLBSDVBS ETAH FPABAR* FPAREF* FPASEL FPASUMFPDIAL* GPSMGSAGSE GSREF* HER HORARMHORPTHHORREF*HRAD HRZARM* HRZENGLAND LOCE LOCREF* MLSMPSTALT PSTFPA SELFPA TKSEL VDISCVERARMVERPTH VRTARM*VRTENGVRTREF*
FUNCTIONS AND SUBROUTINESALT CNVRT SCLXTK
-84-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SCLXTKGUIDE.FORDSPFSTGUIDEINTEGER_VALUE= SCLXTK()
PURPOSE:TO compute the horizontal deviation pointer position.
DESCRIPTION:SCLXTK determines the full scale width, in feet, of the
horizontal deviation indicator and computes the appropriateposition of the pointer. By default the horizontal deviationscale represents 7,500 feet in either direction from thecenter. When the aircraft is close enough to the touchdownrunway's localizer shack the full scale width varies tomatch a localizer angular deviation. At runway thresholdthe width is 350 feet. The distance along the path wherethe width reaches the 7,500 foot maximum is dependent on thedistance of the localizer shack to the runway threshold.Once the scale width has been determined the horizontaldeviation pointer position is computed using the aircraftcross-track value (XTK).
GLOBAL REFERENCES:
VARIABLES
ACTCNT DTOGO RWYLEN TOWPT XTK
ARRAYS
AIRPTS
RECORD ARRAYS
ACT WPTS
FUNCTIONS AND SUBROUTINES
XLIM
-85-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
MSGMGRMSGMGR.FORDSPFSTPFD NASACALL MSGMGR
PURPOSE:TO display messages to the screen alerting the pilot
that certain conditions exist.
DESCRIPTION:MSGMGRcontains the logic for the alert and warning
messages displayed on the PFD screen. The messages, eachof which consists of up to seven characters, are displayedin the lower half of the PFD window in large yellow letters.MSGMGRis executed twenty times per second, but only threemessages may appear in one second. Therefore, every seventhiteration a valid warning or alert message may be shown.The text is displayed for its one-third second time frame.Priorities are given to the alert and warning indicators.The three valid messages with the highest priority aredisplayed in the three time slots available in one second.Each second conditions are re-checked, and again the threevalid messages of highest priority are shown, so that someindicators which are also valid may not appear. On theother hand when there is no text to be displayed that areaof the PFD is blanked.
A priority has been given to the messages such thatwarning indicators are output before alert indicators. Thepriority of warning text is as follows: 'AOA', 'FLAPS','GEAR', 'D/H', 'OM', 'MM', and 'LNK MSG' in that order. Thepriority for alert text is: 'ALERT', 'CLIMB' or 'DESCEND','TUNRL' or 'TURNR'. All of the messages except 'AOA'
require that the message bezel be pressed on before they are
displayed. The 'AOA' message will automatically appear in
red when the maximum alpha currently computed by the flight
controls software is exceeded and ground speed is greaterthan 64 knots.
The warning indicator 'FLAPS' has the second highest
priority. It may be shown in either red or yellow. A red
message indicates that either the flap handle positions for
the forward and aft flight decks do not agree, or the flap
settings are outside the structural limits of the airplane
at the current airspeed. A yellow message will appear if
the flaps are not set correctly for the current airspeed,
or if the flaps are set at 40 and the airplane weight is
greater than 95,000 pounds. Only the 'AOA' and 'FLAPS' text
can appear in red, all other messages are shown in yellow.
-86-
The next two indicators processed are the gear and de-cision height warnings. If the runway bezel has been press-ed on, and the flaps are set higher than 15, and the landinggear is not locked down, the text 'GEAR' is flashed. Thismessage indicates to the pilot that the landing gear needsto be lowered. The warning 'D/H' appears when the radaraltitude moves within the 30 foot range above the decisionheight, provided that the decision height is above 45 feet.The text 'D/H' is displayed for ten seconds.
Outer markers and mid markers are both physical posi-tions on the ground located near runways, and are used by
the pilot on runway approaches to verify his position. The
text 'OM' or'MM' is displayed when the airplane passes over
one of the markers, and its radio signal has been sensed.
The lowest priority warning message is 'LNK MSG'. This
message indicates that a data uplink has been received, and
is a cue to the pilot to check the data link display for the
uplinked information.
The next set of indicators is the alert messages.
They have lower priority than the warning messages, so that
if all three time slots within one second have been filled
already, no alert messages will be shown even if they are
valid. Alert messages appear when the airplane is close to
the next waypoint and they describe what general direction
the airplane will take after it passes the waypoint. The
actual logic to display alert indicators is: the alert flag
must be on (it comes on ten seconds before the next waypoint
and goes off after reaching it), the runway is not being
shown, and the approaching waypoint is not the last one.
The text 'ALERT' has highest priority among the alert
messages. The 'CLIMB' indicator is valid if the airplane
altitude increases by 10 feet on the next flight path leg,
and 'DESCEND' is valid if it decreases by i0 feet. The
'TURNL' indicator is true if the airplane turns to the left
more than 2 degrees on the next leg, and 'TURNR' is true if
it turns to the right more than 2 degrees. If there is a
time slot available and alert messages are valid, 'ALERT'
will always appear. The other alert messages are shown if
there is room to show all that are valid. In other words,
if ALERT/CLIMB/TURNL are all true but only two time slots
are available, 'ALERT' only is shown because 'CLIMB' does
not by itself adequately describe the next flight path leg.
Also, once it has been determined that there is enough slots
to show a complete set of alert messages, all warning mes-
sages are suppressed for the rest of that second (because
warnings have higher priority and may interrupt the alert
message being shown) to allow the alert messages to be dis-
played.
-87-
GLOBAL REFERENCES:
VARIABLESACTCNTAEEF ALRTFG* CASF DECHT DLINK FLG FLAP FLAP LIMITSFLPPLC GRPOSHORPTHHRAD MIDMRKMSGBZLMXALF NAV64K OUTMRKRWYBZLRWYVLDTOWPTVERPTHWEIGHT WPTALR
RECORDARRAYSACT WPTS
-88-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PACKPFDPK.MARDSPFSTPFD NASACALL PACK
PURPOSE:TO pack boolean values into one discrete word and
send it along with the decision height value to the PFDformat.
DESCRIPTION:This procedure stores four items into the display
output buffer for transmission to the PFD format. Twelveboolean values are packed as one bit discretes into a word
of the display buffer. Three display buffer words are
packed with twelve nibble (four bits) fields. The bit and
nibble assignments are shown below.
PACKED DISCRETE WORD
BIT VARIABLE
0 IATTV
1 VVMODE
2 ALTHLD
3 STRVLD
4 TRKBGF
5 RWYVLD
6 ALTRFV
7 HRV
8 CASV
9 CALTV
I0 FMTVLD
Ii
DESCRPTION
Attitude valid
Velocity vector mode
Altitude hold mode
Waypoint star valid
Track bug flag
Perspective runway valid
Altitude referenve valid
Radar altitude valid
Calibrated airspeed validAltitude valid
PFD format valid (constant on)
TKSEL OR PSTTKA OR HORPTH Horizontal guidance valid
NIBBLE WORD #i
CTRLMD Control mode index
AUTHMD Auto throttle mode index
RLLFLG Roll command detent index
PITFLG Pitch command detent index
NIBBLE WORD #2
RWYFLG Perspective runway approach indexCASFLG Selected CAS color index
HRZENG Engaged horizontal mode index
HRZARM Armed horizontal mode index
NIBBLE WORD #3
VRTENG Engaged vertical mode index
VRTARM Armed vertical mode index
FPABAR Flight path angle bar color index
ALRTFG Alert message index
-89-
The digital value of the right bezel panel potentiometer isfetched from the display input buffer to compute decisionheight. The address contained in PFDBZL points to the inputbuffer area corresponding to the pilot's PFD. The range ofvalues obtained from the pot is 0FFFH (all the way left) to0000H (all the way right). The raw pot values are trans-lated into decision height values (feet) by the equation:
DH = .243956 * (4095 - POT VAL)
The 'ones' digit is forced to zero to give decision heightin increments of I0 feet. Note that a POT VAL of 0FFFH
produces a result of -30 feet. In actuality negative values
are not obtained because none of the potentiometers provided
ever reach the full 12 bit range. Typically the digitized
value obtained from the pots on any DU bezel panel will only
be 0F70H when turned completely to the left. This value
corresponds to a decision height of zero feet.
GLOBAL REFERENCES:
VARIABLES
RWYVLD STRVLD TRKBGF VVMODE FMTVLD CASV HRV MACHV LOCVLD
CALTV IATTV PFDBZL
ARRAYS
OUTDAT*
-90-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PFD NASAPFD NASA.FORDSPFSTDSPFSTCALL PFD NASA
PURPOSE:TO serve as the display MicroVAX executive module to
the NASA primary flight display format.
DESCRIPTION:This module is the executive procedure for the NASA
primary flight display format. Several small PFD compu-tations are performed directly within this module, whileindividual procedures are called to handle larger operationsassociated with the PFD format.
Setting the logical value of the waypoint alert flagis the first operation performed. The flag is set when
the aircraft is within ten seconds of the destination
waypoint (straight leg or DMA turn), or the inbound
tangent point (non-DMA turn), while traversing the active
flight plan. The aircraft must be within 500 feet of the
horizontal flight plan profile to be considered on the
flight plan.
Four memory locations in the microprocessor output
buffer are filled next. These are the actual roll,
commanded roll, actual altitude, and vertical speed, they
are computed from the flight controls variables ROLL, DROLL,
ALTCOR, and HDCF respectively. The two roll variables are
simply scaled and stored as fixed point values. The
altitude is converted to a sign adjusted fixed point value
by the function ALT_CNVRT. The fixed point vertical speed
sent to the PFD is an exponential scaling of the altitude
rate from flight controls. The screen units of length, in
one-thousandths inches, for the altitude rate arrow is
produced as follows.
(809.47353 * HDCF) ** .65
The flight control variables PDCOL and WHLINP are
tested to determine the "out-of-detent" status of the
pilot's side arm controller. Display buffer indices are
set to indicate when roll and pitch commands are in
progress.
The orientation of the display screen depends on modes
of guidance used by the aircraft. The display screen is
oriented along the aircraft "velocity vector" when the air-
craft is flying velocity control wheel steering (VCWS) or
automatic guidance with a manually selectable flight path
angle (FPASEL). The introduction to this section describes
this concept in more detail. The flag VVMODE is set to true
or false by PFD NASA to indicate which orientation will be
used.
-91-
The variables FPAPFD and THETA_PFDrepresent the flightpath angle and pitch angle used by the PFD format. Thetable below shows the settings of these variables undervarious conditions.
Condition FPAPFD set to
• VCWS• FPASEL
OTHER
Commanded flight path angle from control column.Selected flight path angle from AGCS modecontrol panel.Actual flight path angle quickened by the rateof change of pitch.
Condition THETA PFD set to
• ACWSOTHER
Commanded pitch from control column.Actual pitch angle•
The display of "Angle of Attack" and "Yaw" are thencalculated by the equations:
AOA = FPAPFD - THETA PFDYAW = TRACK - HEADING
These values are translated into the aircraft body axis
by performing a coordinate transformation with the air-
craft roll angle• The following is a summary of how the
values described above are used in the positioning of the
"Gamma Wedge" and "Aircraft" symbols• Note some of the
operations mentioned take place in the routine AIRGAM.
In Velocity Vector mode:
The Gamma Wedge symbol is fixed at the center of the
display screen.
The center of the Pitch grid background is displaced
from the Gamma Wedge by FPAPFD. Therefore the Gamma
appears at the correct pitch grid marker.
The Aircraft symbol is drawn relative to the Gamma
wedge by using the transformed angle of attack and yaw.
Not in Velocity Vector mode:
The Aircraft symbol is fixed at a position .8375 inches
above screen center.
The center of the Pitch grid background is displaced from
the Aircraft symbol by THETA PFD. Therefore the aircraft
symbol appears at the correct pitch grid marker.
The Gamma Wedge is drawn relative to the Aircraft symbol
by using the transformed angle of attack and yaw.
-92-
Two transformation matrices are created in PFD NASA foruse by other procedures. The first is the TL2B matrix whichtransforms a 3D vector from geographic to aircraft bodycoordinates. The second, TB2E, changes body to velocityvector coordinates. See the descriptions of the proceduresSTAR and RWYMGRfor more information on the use of thesematrices.
Finally, nine PFD format procedures are called togenerate the data for the PFD format in the microprocessorsystem.
GLOBAL REFERENCES:
VARIABLESACTALT* ACTROLL* ACWSALPHAXALTCORAUTO BETAX CALPX CBETXCROLL DROLL DTOGOFPAPFDGAMCGAMMAGSFPSGUID2D HDCF HDGFHDOT* NAV64K PDCOLPITCH PITCH Y* PITFLG* RLLFLG* ROLLSALPX SBETX SKYPTR* SROLL TOWPTTRKF VCWSVVMODEWHLINPWPTALR* XTK
ARRAYSTB2E* TL2B*
RECORDARRAYSACT WPTS
FUNCTIONSAND SUBROUTINESAIRGAM ALT CNVRTANGL CASMGRGUIDE MSGMGRMTH$SIGN PACKRWYMGRSCOSDSTAR UNPACKWINDOW
-93-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
ALT CNVRTPFD NASA.FORDSPFSTPFD NASAINT VALUE = ALT CNVRT(FP ALTITUDE)
PURPOSE:TO return the fixed point altitude for the micro-
processor display output buffer.
DESCRIPTION:Altitude values, in feet, for the aircraft can reach
above the maximum binary word value possible (32,767). TheMicroVAX uses floating point data to work with altitudes toavoid problems. However, floating point altitude valuesabove 32,767 will cause VAX conversion errors when refor-matted to 16 bit integers for transmission to the displays.The function ALT CNVRT alleviates this problem by convertingthe floating point altitude to a 32 bit longword integerand saving only the lower 16 bits. No MicroVAX conversionerror occurs, however high altitudes become the binaryequivalent of large negative numbers. This is accounted forby the PFD format itself. The "high altitude" values aretreated as unsigned 16 bit integers by the microprocessorssoftware.
-94-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
RWYMGRRWYMGR.FORDSPFSTPFD NASACALL RWYMGR
PURPOSE:TO compute the screen coordinates of the perspective
runway PFD symbology.
DESCRIPTION:
A number of conditions must be met before the perspec-
tive runway symbology will be shown on the PFD format.
These include:
Runway selected on PFD bezel panel.
Destination runway defined on active flight plan.
Airplane is within the ILS zone defined around runway
approach.
Aircraft heading differs from runway heading by less
than 40 degrees.
Altitude above runway is less than 2,500 feet.
The computation of runway parameters proceeds when all theabove conditions are met.
Four different coordinate systems are employed by RWYMGR
while performing the calculations. They are defined asfollows:
GEOGRAPHIC: X - NORTH Y - EAST Z - UP
RUNWAY: X - RWY CENTER LINE
Z - UP
Y - RWY THRESHOLD LINE
BODY: X - ALONG BODY Y - THROUGH WINGS Z - THROUGH
BODY, PERPENDICULAR TO WINGS
INERTIAL: BODY AXES ROTATED BY (TRACK - HEADING) AND
(FLIGHT PATH ANGLE - PITCH)
First the position of the aircraft relative to the
runway threshold point is computed. The values obtained
represent a distance vector with each element of the vector
representing the distance between the aircraft center of
gravity and the runway threshold point, projected onto the
geographic reference axes.
-95-
The geographic distance vector is transformed to therunway frame of reference. The "X" component of the newvector is used to perform a "Psuedo-clip" operation on therunway coordinates. Performing 3D clip calculations foreach vector used to draw the runway is very time consuming.An approximation using the "X" component of the runwayreferenced distance vector is used instead. The idea behindthe "psuedo-clip" approximation is to throw away some of therunway as the airplane approaches. The amount to throw awayis determined from the "X" and "Z" components of the runwayreference distance vector (see figure 6.2 at the end of thisdescription). This technique requires that the aircraft isapproaching the runway down the centerline with small pitchand yaw angles. When these criteria are not met the runwaycoordinates, after transformation to the body frame ofreference, may cause one of two problems. If too muchrunway is truncated the front of the runway may disappearon the screen instead of running below the bottom edge ofthe view screen. A worse situation occurs when not enoughis truncated. The points that are transformed behind theaircraft center of gravity actually are reflected back aheadof the airplane. This will appear as spurious lines beingdrawn onto the display screen. Note the conditionsgoverning the display of the runway symbology (mentionedabove) along with standard flight procedures around thetouchdown runway make the runway truncation a validprocedure.
A transformation matrix is created which changes run-way coordinates to body reference. The global matrix TL2B(Transform Local to Body) is adjusted by runway heading tomake the new transformation matrix. The local procedureSCREENwill use this matrix when performing its computa-tions.
Figure 6.3, at the end of this module description,shows eight points representing the outline of the runway inthe runway coordinate system. These points are sent to thelocal procedure SCREENfor transformation. The coordinatesfor each point are shown in the following table.
POINT (X)...COORDINATES (feet) ... (Y)1 0 (or truncation point) -I002 length of actual runway -I003 length of actual runway I004 0 (or truncation point) 1005 -6076 (or truncation point) 06 1.0E+I0 (infinity) 07 I000 (or not shown) -i008 I000 (or not shown) i00
-96-
The "Z" value for all points is implicity defined as runwayelevation. Note that the threshold and touchdown lines neednot be drawn when the truncate point advances past them.The index RWY INDEX is used to pass this information to thedisplay system.
RWYINDEX012
ACTIONDraw threshold and touchdown linesDraw touchdown lineDraw neither line
The procedure SCREENis called to compute the X and Yscreen coordinates, in one-thousandths inches, for therunway points. The screen coordinate values are sent to thedisplay processors as 16 bit fixed point integers. Thevalues sent during an approach to the runway vary by such alarge amount that a single scale factor value for thecoordinates could not be chosen. Instead the coordinatesare scaled dependent on the largest value created by theprocedure SCREEN. All values are multiplied by the computedscale factor before conversion to integer format takesplace. The scale factor used is also sent to the displaysystem, via the output buffer, for proper interpretation ofthe coordinate values sent.
GLOBAL REFERENCES:
VARIABLESALTCOR COSRHDLATFT DLONFTDLT ALT DLT RWYX DLT RWYY* HDGFILSZON INT SCALE* LAT LON RWYBZLRWYFLGRW_HDGRWYLATRWYLENRWYLONRWYVLD* RYELEV SINRH TRKF VVMODE
ARRAYSAIRPTS OUTDAT* RWYTO BDY* TL2B
FUNCTIONS AND SUBROUTINESANGL SCREEN
-97-
ZOH
k--C]Z(_D-7
rVk-
I11
(Z7-
£3r"l,"CD
0(._)
0
g
',,,,, S
" laj"
\\
X
I
N v." Z
rrt--
ii
I--Z
O
ZO
I--
ZDrvI---
\%
\
\
ZWZ
X 0
T-O(_)
<
0_J
Z Ls.JD
Z
(D
ZIX GI
ZO o
-figure 6.2-
-99-
+×
7
(3
TOUCHOOWN POINT
_._ -I_" THRESHOLD POINT IS ORIGIN
. t OF COORDINATES IN RUNWRY_$I 8 ._._ I_ FRRME OF REFERENCE
RUNI,,IRY COORD I NRTE PO I NTS
-figure 6.3-
PRECEDING PAGE Bt.A_K NOT FILMED
-I01-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
SCREEN
RWYMGR.FOR
DSPFST
RWYMGR
CALL SCREEN(RWY_X, RWY_Y, SCR_X, SCR_Y)
PURPOSE:
To compute screen unit coordinates on the PFD format
for the perspective runway symbology.
DESCRIPTION:
The procedure screen receives the X and Y offsets of
runway points as its first two calling parameters. These
are values in feet in the runway coordinate system, centered
on the runway threshold line. The position of the runway
point relative to the aircraft is found by adding the air-
craft offsets computed by RWYMGR (DLT RWY X and DLT RWY Y).
A vector is made that changes the coordinates _rigTn
from the runway threshold to the airplane position. This
vector is transformed from the runway frame of reference to
the airplane body frame. If a velocity vector mode of
flight is in use the body coordinates are transformed to the
system oriented in the airplane inertial frame of reference.
The tangent of the pilot observation angles (up/down, left/
right) are found by the ratio of the Z and Y coordinates
with the depth coordinate (X). The PFD screen coordinates,
in one-thousandths inches, are returned to RWYMGR through
the last two calling parameters.
GLOBAL REFERENCES:
VARIABLES
DLT ALT DLT RWY X DLT RWY Y RWYVLD* VVMODE
ARRAYS
RWY TO BDY TB2E
FUNCTIONS AND SUBROUTINES
MXV
-I02-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SBXMGRSBXMGR.FORDSPSLWDSPSLWCALL SBXMGR
PURPOSE:TO control and output to the PFD information concerning
aircraft autothrottle and control modes, the 'TO' waypoint,and the current mach.
DESCRIPTION:The upper left corner of the PFD is reserved for
information concerning the aircraft's control and auto-throttle modes. The text "AUTO", "VCWS", or "ACWS" may bedisplayed in the control mode slot (which is the linedirectly above the autothrottle text line) depending on thecurrent flight state. If the aircraft is flying auto-throttle then the following text can be shown in the auto-throttle mode slot: "AT CAS" for autothrottle selected, or"AT 4D" when flying four dimensional guidance. For bothmodes, if the conditions are not met to display text thenthe slots remain blank.
The "to" waypoint name will appear in the upper rightcorner of the PFD whenever two dimensional guidance ispossible. The name consists of five characters, and isretrieved from the active guidance buffer. When 2D guidanceis not possible the area will be blanked.
SBXMGRalso stores the current mach value in the dis-play output buffer. It will appear above the airspeed tape
on the PFD screen when it is .5 or greater. Mach is scaled
by one thousand to provide three digits of accuracy on thedisplay.
GLOBAL REFERENCES:
VARIABLES
ACWS AUTHMD* AUTO CTRLMD* GUID2D IASSEL MACH PFD MACH*PFD TO WPT* TIMPTH TOWPT VCWS
RECORD ARRAYS
ACT WPTS
-103-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
STARSTAR.FORDSPFSTPFD NASACALL STAR
PURPOSE:To compute the screen coordinates and zoom factor for
the waypoint "Star" symbol of the PFD format.
DESCRIPTION:The waypoint "STAR" symbol on the PFD depicts a three
dimensional representation of the current position of thedestination waypoint on the active flight plan. When thepilot maneuvers the aircraft so that the track and flightpath angle symbology lie on the STAR symbol, the aircraft isflying directly to the next waypoint on the flight plan.The size of the STAR remains constant, until the aircraft isclose to the waypoint. Then the STAR zooms, to simulate a3-D effect until the waypoint is reached•
First logical comparisons are made to determine if theproper conditions exist for displaying the STAR symbol.The following criteria must be true to proceed with thenecessary calculations.
• A valid 3-D flight plan exists (altitudes for eachwaypoint exist)
• The "STAR" bezel button on the PFD display has beenpressed•
• The 'TO' waypoint is not the last waypoint on theactive flight plan.
The size of the STAR is sent to the display processor
as a 16 bit integer scale factor named STARZM. The value
represents the ratio of the original STAR size times 1024.
For example, a value of 1024 for STARZM means display the
normal sized STAR (i * 1024). If a STAR 5.25 times as large
as the normal size is desired, STARZM would be set to 5376
(5.25 * 1024). When the aircraft is within 3,500 feet the
STAR will start to zoom (i0 seconds before arrival at 210
knots)• The amount of zoom is proportional to the air-
craft's distance from the 'TO' waypoint. The STAR will grow
to 20 times its original size before it is removed from the
display screen until a new 'TO' waypoint can be shown•
-104-
The position of the STAR on the PFD format representsthe track and flight path angle required to reach the 'TO'waypoint from the current position of the aircraft. Thisonly corresponds to flight plan guidance when the currentposition of the aircraft is on the flight plan. The bearingto the destination waypoint is found using earth centeredvectors pointing to both the aircraft position and the 'TO'waypoint. The normal vector to the plane formed by theearth centered vectors is compared to an "absolute west"vector to produce the desired bearing. Desired flight pathangle is found using the distance to the destination waypointand the altitude differential between the positions. Thescreen positions are found by rotating the angular valuesinto the roll axis of the PFD horizon line and scaling thevalues to screen units (one-thousandths inches).
If the coordinates of the STAR symbol lie outside ofthe PFD view window, the coordinates are clipped so the STARsymbol is pegged to the side of the window by the subroutineLIMITS.
GLOBAL REFERENCES:
VARIABLESACTCNT ALTCORCLON CROLL DTOGOFPAPFD GAMXGAMYGUID3D LATLON SLON SROLL STARX STARY STARZM* STRBZL STRVLD* TK TOWPTVVMODE
ARRAYSAIRPTS
RECORDARRAYSACT WPTS
FUNCTIONSAND SUBROUTINESANGL LIMITS MTH$ASIN MTH$ATANMTH$ATAN2VCP VDP VMGXYZ
-105-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
LIMITSSTAR.FORDSPFSTSTARCALL LIMITS(XPOS,YPOS,XLIM, YLIM)
PURPOSE:To force the waypoint STAR within the boundaries of the
PFD viewing window.
DESCRIPTION:The first two calling parameters to LIMITS contain the
computed offsets from the screen center of the waypoint STARsymbol. The values are limited to fall within the PFD view-port and returned in the last two calling parameters.
The limiting operation consists of calculations whichdetermine the intersection of a line from the screen centerto the STAR, and the viewport boundary. Tests are made todetermine where the intersection will occur; viewport sides,bottom, or within the arc at the top. For the sides andbottom, which are either constant X or Y lines, theintersection is found from the fixed coordinate value at theboundary and the slope of the line. The arc intersectionis more difficult. Both the slope of the STAR line and thearc radius are used as follows.
XLIM = +/- SQRT(ARCRAD**2 / (SLOPE**2 + I))
YLIM = SLOPE * XLIM
Note that the "+/-" means XLIM will follow the sign of the
original unlimited X coordinate.
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINES
MTH$SIGN MTH$SQRT
-106-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
UNPACKPFDPK.MARDSPFSTPFD NASACALL UNPACK
PURPOSE:To process packed discrete words.
DESCRIPTION:UNPACKstarts by creating individual boolean variables
for each bit of the packed discrete word FCFLGS, which is a32 bit longword received from the FM/FC MicroVAX computer.The following is a list of the seventeen logical bytevariables formed from the individual bits of FCFLGS. Notethat the variable ALTHLD is logically negated when unpackedfrom FCFLGS.
LOGICAL BIT DESCRIPTION
LOCE 0ACWS 1VCWS 2AUTO 3LAND 4MLSV 5GEAR 6MLSM 7DVBS 8DLBS 9LANDR I0GSE iiTDSP 12MXALF 13ALTHLD 14AEEF 15GPSM 16
localizer engageACWSmodeVCWSmodeAUTO modeLAND modeMLS validgear flagMLS mode engagedvertical beam sensedlateral beam sensedland armedglide slope engagedtrack dial spinAOA exceededaltitude hold of vcwsaft flight deck engagedGPS guidance selected
The 16 buttons on the PFD display bezel panel each con-trol one bit in a microprocessor input word. A bit is 'I'while the button is depressed, otherwise it is '0'. Thepacked word containing the 16 bezel bits is sent to the hostcomputer in the 320 word transmission buffer. UNPACKusesthe addresses saved in the PFDBZL array to fetch the bezelwords for both the pilot and co-pilot PFD formats. Thebits are "one-shotted" to make long button presses appear asa one frame press. The memory word, OUTDAT(680), is used tokeep the current state of each bezel button. Each time apress is detected the corresponding bit in OUTDAT(680) istoggled to the alternate state. This gives the effect ofpress to enable function, press again to disable function.Only the three bezel buttons on the upper right side of the
display screen are used for the PFD format. Their usage is
listed below.
CO)_
-107-
LOGICAL BIT DESCRIPTION
STRBZL 0
RWYBZL 1
MSGBZL 2
bezel panel STAR select
bezel panel perspective runway select
bezel panel alert message select
The current state of the PFD bezel buttons is also sent
back to the PFD since OUTDAT(680) is part of the buffer that
is transmitted to the display system.
GLOBAL REFERENCES:
VARIABLES
LOCE* ACWS* VCWS* AUTO* LAND* MLSV* GEAR* MLSM* DVBS*
DLBS* LANDR* GSE* TDSP* MXALF* ALTHLD* AEEF* GPSM*
STRBZL* RWYBZL* MSGBZL* FCFLGS
ARRAYS
PFDBZL
-108-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
WINDOWWINDOW.FORDSPFSTPFD NASACALL WINDOW
PURPOSE:Compute position data for symbology used within the
PFD format viewing window.
DESCRIPTION:This procedure sends information to the PFD for four
different symbols. These are the horizon ticks, desiredtrack marker, track hold indicator, and the flare guidancecue.
The horizon ticks are a set of tick marks appearing atten degree intervals along the horizon line of the PFDformat. Depending on mode of operation, the center of thePFD view window is either the aircraft's current track orheading. Tick marks are all placed at even ten degree unitsof bearing. The offset to the first tick is computed byWINDOW, in one-thousandths inches, and stored in the micro-processor display buffer.
The desired track "T" bar rides along the top edge ofthe PFD horizon line. The bar is placed at the positioncorresponding to either the flight plan desired track, orthe selected track from the pilot's mode control panel.When the horizontal path guidance is engaged the desiredtrack of the flight plan is stored by WINDOW. Since themode panel selected track is always stored by navigationdisplay modules, WINDOWdoes not need to do so.
When track hold mode of Velocity Control Wheel Steering(VCWS) is engaged the commanded track "bananas" are shown onthe lower edge of the PFD horizon line. Their position isobtained by scaling the offset value created in the flightcontrols software.
The last item processed by WINDOWis the flare guidancecue. The screen position of the cue, in one-thousandthsinches, is computed when VCWSmode is engaged and radaraltitude is less than either selected decision height or200 feet. The computed position is proportional to radaraltitude. The guidance cue will meet the PFD horizon linewhen altitude above the runway is zero. The rate that thecue approaches the horizon line is .05 degrees per foot ofaltitude.
GLOBAL REFERENCES:
VARIABLESDECHT DSRTK FLARE* HDGFHORPTHHORTCK*HRAD MAGVARNOMTRK*PITCHY TKBUGX* TRKBGTRKBGF* TRKF VCWSVVMODE
FUNCTIONSAND SUBROUTINESANGL MTH$AMOD
-109-
Section 7.0 NAV DISPLAY SOFTWARE
The navigation display shows the position of the air-plane relative to ground positions and terrain features.Figures 7.1 and 7.2 at the end of this section depicttypical NAV display configurations for the two available mapbackground orientations (Map and Plan modes). The maporientation is a selectable feature controlled by a bezelbutton.
The airplane chevron in Map mode is fixed 1.25 inchesbelow the screen center and the symbology is displayed in a"track up" orientation. This means that the airplane'scurrent track is always the center of the compass arc at thetop of the display.
In Plan mode some other reference point, typically awaypoint, is used for the fixed position 1.25 inches belowscreen center. All other map background symbology is dis-played in a "north up" orientation. The airplane chevronsymbol moves about the display in this mode.
The NAV format screen is divided into three distinctareas. The major one is the airplane and map backgroundfeatures area. The second is the flight information area atthe top of the display above the compass arc. The verticaldeviation scale area is the third. The three areas exist inboth Map and Plan modes. The compass arc, which forms apartition between background and flight information areas inMap mode, is not shown in Plan mode however.
The flight information area contains wind speed anddirection information in the upper left corner in Map mode.Just a north pointer is displayed there in Plan mode. Theright hand side of this area has four lines of flight infor-mation text. The following describes the informationpresent on each line.
#i 'TO' waypoint information. Includes destinationwaypoint name and distance from present airplaneposition. Also the current Greenwich Mean Time isshown at the end of the line.
#2 Bezel selection indicators. Three letter mnemonicsappear when bezel buttons have been used to selectthe map options; airports, navaids, time box, oraltitude range arc.
#3 Like line #2, mnemonics are shown when terrainfeatures, ground reference points, or the boundaries
of restricted regions have been selected.
-ii0-
#4 Guidance and navigation modes. Aircraft modesinclude 2D/3D/4D guidance, track select, altitudehold, flight path angle select, and air speedselect. The aircraft navigation modes are shownat the end of the line.
The aircraft and map background area shows the air-craft's present position along with selected referencepoints. The orientation of the symbology depends on whichof the two modes is selected from the bezel panel. Flightplans are displayed as a series of straight and curved linesegments with four point star symbols designating specificwaypoints. The aircraft chevron has the current ground speedand altitude appended to the bottom when in Map mode. Alist of the symbols that can appear in the Map backgroundarea follows in the next sections. The symbology appearingin this area is masked from the other two NAV format areas.However the masking is only performed for the verticaldeviation area when the vertical deviation scale is presenton the display.
The altitude profile of the aircraft is shown via thevertical deviation scale. This scale appears in the lowerright hand corner of the display screen when appropriateconditions arise. A rectangular mask around the scale keepsbackground features from interfering when the verticaldeviation scale is present.
The NAV format uses twelve of the sixteen buttons
provided on the bezel panel of a DU. Neither of the two
potentiometer dials is used. The following table describes
the function of each NAV format bezel button. The naming
conventions are: L - left hand set, R - right hand set,
(I through 8) - button number with one being the top.
L1
L2
L3
L4
L5
L6
L7
L8
R1
R2
R3
R4
R5
R6
R7
R8
not used
not used
not used
Terrain features option
GRPs option
not used
ADIZ boundaries option
Map/Plan mode toggle
MLS select/deselect
Airports option
Navigational aids option
Time box option
Altitude range arc option
Path waypoint information option
Zoom out (scale change)
Zoom in (scale change)
p
-iii-
3Hfl->WS2@4 14:52
/
4
5
184 2.? _WS104
O KFG
NAV IGAT ION D ISPLAY( MRP MODE )
FORMAT
-figure 7.1-
-113-
H
I_ /i
//!
..
/
1.J .."
°f.
-_o7_"/
IHM->WS204 14:52
APT
BHD
2D [RS FPR IOO
."
RES i/.1
o
NAV IGAT ION D ISPLAY
(PLRN MODE)
FORMAT
-figure 7.2-
PRECEDING PAGE BLANK NOT FILMED
• .............. ._ L", _g.,.,_,,..:, ,3; '-,4, . _!
-115-
Section 7.1 THE NAV BACKGROUND BUFFER
The background data buffer is the first 400 words of
the 704 word buffer sent to the Sperry display system from
the host computer. Appendix A gives the layouts of the I/O
buffers. The background data occurs in varying amounts
depending on the position of the aircraft on the chosen
route, and contains information on the reference points and
flight plan. Unlike the rest of the data sent to the micro-
processor system, the background data is a variable length
stream, up to 800 words, of information which cannot be
identified by its I/O buffer position. Interpretation of
the data must be performed with a sequential parsing,
starting at the first location. Special code words are used
within the data stream to identify what type of background
information follows.
Each NAY format loaded into a display processor may
have unique background data. However the same 400 word data
area is used by all NAV formats, therefore they must take
turns using the background data buffer. Actually many of
the 704 word data buffers read from the host computer
contain no new data in the background area since background
updates occur infrequently (every five seconds, after a NAY
bezel button selection, or following a flight plan
modification).
A word of data, "OUTDAT(599)" in Appendix A, is used to
control the use of the background buffer. The meaning of
the bits in the Map Control word are as follows:
BITS DESCRIPTION
0-3
4
5-7
8-15
Display processor identifier code.
Part two update flag.Unused.
Update sequence number.
The display processor identifier code is a number that
designates the processor which should use this data. The
next chart gives the code values used for the various
processors.
CODE DEU # DP #
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
7 3 1
8 3 2
9 3 3
I_NT[N[IONALL@ B_NS
|_ I_
PRECEDING PAGE FLA_IK NOT F,_.M_.D
-116-
The part two flag informs the NAV format that the backgroundbuffer is to be considered a continuation of the last one
received. This gives the ability to send 800 words of
background data to a NAV format in two consecutive updates.
The sequence number informs the NAV format that the data in
the background buffer is new data. This number increments
every time a new background buffer is created. This allowsthe NAV format to distinguish between new data designated
for it and old data that has been in the buffer for a while.
All data within the background buffer is stored in
groups of 2 or more words. The first word of the group is
always a "group identifier word" having the group ID label,
class, and word count. The diagrams at the end of this
section show the various formats of background data words.
Bits zero through two of the group ID word are used for the
label. Presently only the following five of the possible
eight group types are used.
LABEL USAGE
0
1
2
3
4
Control group
Text group
Symbol group
Rotatable symbol group
Line segment group
The class code, bits three through seven, is used to
differentiate between variants of the given group. The
upper eight bits of the group ID word are the word count.
The value in this byte is the total words associated with
the particular data group following the ID word.
The control group is used to set up map display soft-
ware prior to the processing of the remaining background
data. Two classes exist in this group; start of transmission
(SOT) data and mode controls. The SOT class is always the
first data in the background buffer. The total number of
words used in the buffer for the entire background update is
stored along with the map sequence index. The index is used
to pick the correct map center displacement out of the array
of four sent from the host computer. Four map center values
exist because up to four independent NAV formats may run
simultaneously. The second class, mode controls, sets map
scale, enables selectable symbology (weather radar, time box,
range arc), and chooses map orientation (track up/north up).
The text group controls the placement of ASCII data on
the four available text lines appearing at the upper right
corner of the NAY format. The class value selects which
line data is written to.
-117-
Reference position symbols are placed on the displayby symbol group entries. The data for this group containsthe north and east displacements from the map center andoptional descriptive text to be shown with the symbol. Thetype of symbol (DME, GRP, AIRFIELD ...) is selected by theclass code.
Symbols which require a particular orientation on thedisplay screen are handled by the rotatable symbol group.The bearing and length (for runway only) is stored in thedata group in addition to the position and text data.
The final group currently used is the line segmentgroup. The class field of this group's ID word sets theline type and color for the following sequence of data. The
two words after the identifier word are the north/eastposition values from map center for the line segment initialpoint. The remaining data in this group occurs in blocks oftwo or more words and is very similar to the group techniquedescribed above. Each block contains one element of theconnected line/path segments being created. The first wordof these blocks is the path element ID, containing theelement type and word count. The element types are line,arc, on path waypoint, and off path waypoint. The lineelement commands a line to be drawn from the last pathposition to the position designated by the north/eastcoordinates provided. The arc type gives the subtendedangle, initial inbound angle, and the arc radius. The onpath waypoint element places a waypoint symbol at the lastdefined path position. Off path waypoints have their ownnorth/east coordinates for placement.
The symbology created from the background data isrepositioned on the display screen every 50 milliseconds bythe airplane position and track data received from the I/Obuffer. This allows the airplane to move smoothly over themap data. The only requirement is that the background beupdated at a fast enough rate so that the display screenalways covers the area defined by the background.
A sample background data buffer is shown below. Thevalues shown are the binary words presented in hexidecimalformat. The data produces a simple flight plan consistingof two straight segments, one arc segment, and a waypointsymbol entitled "COLIN". Text data for lines #i and #4 alsoappear in the data. The diagram on the following pageshows the path drawn from this data. Note the overlap ofthe physical viewing window which allows displacing thebackground from the physical screen center as the airplaneflies.
-118-
01000039
01080001
1204lIFE13070200FFF2FFE303015977F61D9FII0503F298FIE94F43494C204E02001307ED81
0A0120204E372D4D433E4C4F4E4920203231333A2032
0AI94433202041492053202020202020202058492058
; SOT.; 57 words background update.
; controls.; scale is 5NM radius.
; line segments - 18 words.; initial position: 4.606 inches east; 4.871 inches north.; draw line to:
; draw arc with:
; place off path wpt at:
; text: "COLIN "
; draw line to:
.014 inches west
.029 inches south.
125.8 degree turn
2.531 inch radius (left turn)
-136.3 degree inbound bearing.
3.432 inches west
3.607 inches south
4.871 inches east
4.735 inches south.
; text line #i.
; " 7NM->COLIN 12:32 "
; text line #4.
; "3D IAS IXX ".
-119-
CLIPPING WINDOW
VIEWING )OW
÷COLIN
SAMPLE PATH DATA
-figure 7.3-
BACKGROUND BUFFER LAYOUT-121-
Burrer consists of 5 data groups:
Label Title
0 Control Group
1 Text Group
2 Symbol Group
3 Rotatable Symbol Group
4 Line Segment Group
Group Identifier words always precede data belonging to a specific group.
Group Identifier Word:
8bits 5bits 3 bits
Where:
Word count
Class
Label
= # of words in data group following identifier.
- identifies subgroup items, line types,colors, etc.
- group number 0 - 4 listed above.
Notes on units for following pages:
-- all distance values : I/lO00thinches.
-- all angular values: (degrees/180)* 2"*15.
-- all text: standard ASCII codes in consecutive byte order
-figure 7.4-
PRECEDING PAGE BLAi'IK NOT FILMED
LABEL 0 ICONTROL GROUP:
-123-
SOT
! , ! o i o
BUFFER COUNT
Scale Range(nm)
0 2
I 5
2 I0
3 20
4 40
5 8O
I LABEL 1 ] TEXT GROUP
CLASS I COUNT l CLASS
O: Text line 1
2: Text line 3 • • • ITEXT
_ _×_"°__ I I II
I LABEL 2 J SYMBOL GROUP
CLASS
O: Mountain (Cv ignored)
1: Obstruction (Cv Ignored)
2: Non-directional Beacon (Cv ignored)
3: VORTAC (Cv ON = tuned) II
4: VOR (Cv ON = tuned)
5: DMEITACAN (Cv ON = tuned) I
6: Airfield (Cv ignored) I
7: GRP (Cv ignored)
8: Marker Beacon (Cv ignored) i9: Waypoint (Cv ON = provisional)
"4
Color variant (Cv)
I _OONTl i _'A_I _ I
1 _,_T_0_ !NORTH POS I
I In• • • ITEXT
Li: IJ
,q_.._.)._ ....... j,_,f.............. PRECEDING PAGE BLANK NOT FILMED
I LABEL 3 ]
CLASS
ROTATABLE SYMBOLS
0: AIRFIELD (Length ignored)
1: Runway2: SRP (Length ignored)
GROUP
COUNT [ CLASS
EAST POS
l NORTH POS
L BEARING
LENGTH
[ [QQII
[ [
]
]JJ
JnITEXT
]J
-125-
LABEL 4 J LINE SEGMENT GROUP
LINE COLOR
O: White 4: Red
I: Green 5: Cyan
2: Blue 6: Magenta
3: Amber 7: Yellow
LINE TYPE
O: Solid
I: dot
2: Dash
3: Dot/Dash
PATH SUBGROUP ID:
O: Position
1: Arc
2: Wpt (on path)
3: Wpt (off path)
COUNT
.TYPE/COLOR
I_,,'1 4 !
EAST POS ]
NORTH POS ]
COUNT I ID ]
QO0
cou.t I ,D !If!
_I_I'LN I_Of'4_LLY8LA_t_PRECEDING PAGE BLANK NOT RLMED
-127-
IDO: Positlon I ID COUNT I 0
L EAST POS
L NORTH POS
I I000
I I
3 1
ANGLE
I
I
!
1 -1ITEXT
I J
ID I:Arc
RADIUS
BEARING
ID2: WPT(ON) i ID COUNT I 2
I IOQO
I I
I
I nITEXT
! J
ID 3: WPT (OFF) ID COUNT I
L EAST POS
I NORTH POS
I I000
I I
"l
ITEXT
Im
PRECEDING PAGE BLANK NOT FILMED
-129-
ID 4: TEXT I ID COUNT I
000
I I
4 I"l
ITEXT
I J
......_ ': '.:_-':' _,.,_"_'. PRECEDING PAGE DL,_,i'4KNOT FILMED
-131-
Section 7.2 NAV BACKGROUND UTILITIES
The data stored in the Navigation format background
buffer is created by calls to a set of utility procedures.
All the modules described in section 7.3 make calls to these
utilities to place graphic information into the map back-
ground. The set of procedures is small, totaling only four
percent of all navigation format software.
There are two categories of NAV background utilities.
The first group contains procedures which are called to
create NAV symbology independent of other utility calls.
The second group of procedures are called in sets. Each
set starts with a BEG SEG call and is terminated by a
END SEG call. The NAV background utility procedures are
listed below. Detailed module descriptions are provided
on the following pages.
Group #INAV TEXT
NAV SYMBOL
Group #2BEG SEG
NAV LINE
NAV--ARC
NAV WPT
NAV LABEL
END SEG
pReCEDiNG pAGE BLANK NOT F!LMED
-132-
MODULENAME:FILE NAME:CALLING SEQUENCE:
NAV TEXTNAV UTL.MARCALL NAV_TEXT(LINE_ID,COUNT,TEXT)
PURPOSE:To store textual data for NAV format information lines.
DESCRIPTION:The navigation format has four lines of textual infor-
mation appearing in the upper right corner. Any of theselines can be updated with a call to NAY TEXT. The firstcalling parameter for NAV TEXT is the line identificationnumber, from one to four.-- Next is the text character count
followed by the actual buffer containing the ASCII text.
GLOBAL REFERENCES:
VARIABLES
NAVPTR*
ARRAYS
NAVDAT*
-133-
MODULENAME:FILE NAME:CALLING SEQUENCE:
NAV SYMBOLNAY UTL.MARCALL NAV SYMBOL(CLASS,X, Y, CNT,TEXT)CALL NAV SYMBOL(CLASS,X, Y, BRG,LEN, CNTi,TEXT)
PURPOSE:To place NAY format reference symbols on the display.
DESCRIPTION:Navigation format symbols are placed on the display
screen by calls to NAV SYMBOL. The desired symbol isrequested within the parameter list by using predefinednames from the file CONSTANT.INC. The position of thesymbol is passed as the X (east) and Y (north) offsets fromthe map background screen center (in feet). Each symboloptionally may have label text written alongside on thedisplay screen. The character count and actual ASCII textare passed as the last two parameters. Note that commasmust remain in the calling sequence when optional parametersare excluded.
The two different calling sequences pertain to the twocategories of symbols available; non-rotatable androtatable. The rotatable group uses the second callingsequence, which has bearing and length. This type of symbolmaintains its orientation within the map background. Non-rotatable symbols do not rotate with the map background.Their orientation stays fixed relative to the displayscreen. The various types of symbols are shown below.
ROTATABLEGROUP
MNEMONIC DESCRIPTION
FLDRWYRWYSRP
airfield with runway linerunway
selected reference point
NON-ROTATABLE GROUP
MNEMONIC DESCRIPTION
MOUNT
OBSTR
BEACON
VORTAC
VOR
DME
AIRFLD
GRP
MARKER
WPT
mountain
obstruction
radio beacon
VOR/TAC antennae
VOR antennae
DME antennae
airfield
ground reference point
outer/middle marker
waypoint
-134-
Note that within the rotatable group only the runway symboluses the length parameter.
GLOBAL REFERENCES:
VARIABLESNAVPTR*
ARRAYSNAVDAT*
-135-
MODULENAME:FILE NAME:CALLING SEQUENCE:
BEG SEGNAV UTL.MARCALL BEG SEG(COLORTYPE,X,Y)
PURPOSE:To initiate a NAV background drawing sequence.
DESCRIPTION:Navigation format drawing sequences are started with
calls to BEG SEG. Two items are associated with an entiredrawing sequence; line type and initial position. These areset from the parameters passed to BEG SEG. The color andline type are passed as a code value in the first parameter.The list below shows the predefined names, found inCONSTANT.INC, which are used to select the desired type.Note that the passed parameter is actually the sum of thecolor code and line type.
COLORCODES
WHITE GREEN BLUE AMBER RED CYAN MAGENTA YELLOW
LINE TYPES
SOLID DASH DOT DOTDSH
Starting position of the drawing sequence is providedin the last two parameters. These represent the X (east)and Y (north) offsets from map background screen center(in feet).
After BEG SEG has been called, no other map backgroundutilities except NAV_LINE, NAV ARC, NAV WPT, and NAV LABELmay be called until an END SEG call is made.
GLOBAL REFERENCES:
VARIABLESNAVPTR*
ARRAYSNAVDAT*
-136-
MODULENAME:FILE NAME:CALLING SEQUENCE:
NAV LINENAV UTL. MARCALL NAY LINE (X, Y, COUNT,TEXT)
PURPOSE:To draw a line on the NAY display.
DESCRIPTION:Lines are drawn as part of the map background by calls
to NAV LINE. This procedure may only be called as part ofa map background drawing sequence which is initiated with acall to BEG SEG.
The line drawn on the display starts at the lastposition made in the drawing sequence and terminates at theposition specified in the parameter list. The first twovalues in the parameter list specify the X (east) and Y(north) offsets from the map background screen center (infeet). A text label may optionally be specified in thecalling sequence. The number of characters is specifiedfirst, followed by the buffer containing the actual ASCIItext. The text is positioned at the endpoint of the linesegment. Note that commas must be supplied when optionparameters are omitted.
GLOBAL REFERENCES:
VARIABLESNAVPTR*
ARRAYSNAVDAT*
-137-
MODULENAME:FILE NAME:CALLING SEQUENCE:
NAV ARCNAV UTL. MARCALL NAV ARC(ANG,RAD,BRNG,CNT,TEXT)
PURPOSE:To generate arc segments for the NAV format display.
DESCRIPTION:Arc segments are drawn as part of the map background by
calls to NAV ARC. This procedure may only be called as partof a map background drawing sequence which is initiated witha call to BEG SEG.
The arc segment drawn on the display starts at the lastposition made in the drawing sequence. Three parameters arerequired to draw an arc segment. The first is the number of
degrees of arc to draw. Next the radius of the arc is
supplied, in feet. Note that the turn direction is estab-
lished by the radius parameter. A negative value means a
left turn and a positive value is used for a right turn.
The third parameter is the compass bearing of the inbound
tangent to the arc.
A text label may optionally be specified in the calling
sequence. The number of characters is specified first (CNT),
followed by the buffer containing the actual ASCII text
(TEXT). The text is placed at the endpoint of the arc
segment. Note that commas must be supplied when option
parameters are omitted.
GLOBAL REFERENCES:
VARIABLES
NAVPTR*
ARRAYS
NAVDAT*
-138-
MODULENAME:FILE NAME:CALLING SEQUENCE:
NAV WPTNAV--UTL.MARCALL NAV WPT(CNT,TEXT)CALL NAV WPT(X, Y, CNT,TEXT)
PURPOSE:To store path waypoint symbols in the map background.
DESCRIPTION:Path waypoint symbols are drawn as part of the map
background by calls to NAV_WPT. This procedure may only becalled as part of a map background drawing sequence which isinitiated with a call to BEG SEG.
A path waypoint may be placed at the last positionestablished in the drawing sequence using the first callingformat shown above. The path waypoint may be positionedindependently by using the second format which has the X(east) and Y (north) offsets from the map background screencenter (in feet). Note that the established drawingsequence screen position is not updated when a positionedpath waypoint is entered into the map background.
A text label may optionally be specified in the callingsequence. The number of characters is specified first,followed by the buffer containing the actual ASCII text.The text is placed at the lower right side of the waypointsymbol. Note that commas must be supplied when optionalparameters are omitted.
GLOBAL REFERENCES:
VARIABLESNAVPTR*
ARRAYSNAVDAT*
-139-
MODULENAME:FILE NAME:CALLING SEQUENCE:
NAV LABELNAV UTL.MARCALL NAV LABEL(CNT,TEXT)
PURPOSE:To store text labels into the map background.
DESCRIPTION:Text labels may be placed at the current position in
the drawing sequence by calling NAV LABEL. This procedure
may only be called as part of a map--background drawing
sequence which is initiated with a call to BEG SEG. The
character count and text buffer containing ASCII codes are
supplied in the calling parameter list.
GLOBAL REFERENCES:
VARIABLES
NAVPTR*
ARRAYS
NAVDAT*
-140-
MODULENAME:FILE NAME:CALLING SEQUENCE:
END SEGNAV UTL.MARCALL END SEG
PURPOSE:To terminate a map background drawing sequence.
DESCRIPTION:Each time a BEG SEG call is made, followed by other
map background drawing sequence calls, a matching call toEND SEG must be made to complete the data packets stored inthe background buffer. Any number of BEG SEG/END SEG pairsmay be stored into the map background buffer.
GLOBAL REFERENCES:
VARIABLESNAVPTR
ARRAYSNAVDAT*
, -141-
Section 7.3 NAV BACKGROUND PROCEDURES
Twenty five procedures are dedicated to the creation of
display buffer data for the NAV format background buffer.
The following chart lists the procedure names along with
their source code language and relative size. Those modules
that serve as utility subroutines to another procedure are
shown with their caller. The size provided is the percen-
tage of total NAV software memory usage.
Refer to Appendix A to identify which locations in the
output buffer (OUTDAT) are used by these modules. Note that
locations used for this format are tagged in the appendix bythe mnemonic "NAV". The following pages include module
descriptions for each of the twenty five procedures.
MODULE SOURCE SIZE
BOUNDS
AREAS
NEARPT
FORTRAN 5%
MAP AIRWAY
GET XY
NAME SIZE
FORTRAN 4%
NAVSLW
NAVUPD
BUSFMT
FORTRAN 6%
OPTION
AIRPRT
ARPSMB
RUNWAY
STRIPS
NAVAID
NAVSMB
RADIAL
FORTRAN 27%
PATHS
PLAN
LEG
DMA
TURN
WPTEXT
FORTRAN 18%
TEXT
STOREFORTRAN 8%
-142-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
BOUNDSBOUNDS.FORDSPSLWNAVSLWCALL BOUNDS(MAP ID)
PURPOSE:
To draw boundaries for the coastal air defense iden-
tification zones (CADIZ), air defense identification zones(ADIZ), and the restricted areas.
DESCRIPTION:
This module is the main driver for the navigation
display's boundaries. There are three types of zones that
can be shown on the NAV display when the boundary bezel
button is selected. Included is NASA restricted areas, air
defense, and coastal defense zones. Data for the boundarylines is stored in the system data base (AADCOM). The
procedure "AREAS" is called with the address of a zone typeand the color/line type for the display. Note the address
is advanced by two to move past the start word for each zonetype.
GLOBAL REFERENCES:
VARIABLES
ADZPTR CDZPTR RESPTR
RECORD ARRAYS
NVMODE
FUNCTIONS AND SUBROUTINES
AREAS
-143-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
AREASBOUNDS.FORDSPSLWBOUNDSCALL AREAS(ADDRESS,COLOR)
PURPOSE:To create NAY background boundary lines.
DESCRIPTION:This procedure is passed the address of a boundary area
and the desired line color/type code. The boundary areaconsists of a six character name followed by a series oflatitude and longitude pairs. A zero word terminator marksthe end of the area. The subroutine GRID converts thelatitude/longitude values to north/east coordinates relativeto the current map background screen center. Clipping atthe screen boundaries is performed on each line formed bytwo sets of lat/lon values. Because of clipping, oneboundary made from connected line segments may be brokeninto many disjoint sections. The map background utilityprocedures, described in section 7.2, are called to createdisplay data for the various boundary lines processed. Theboundary label is placed at the line end-point nearest thescreen center. This position is found by the procedureNEARPT.
GLOBAL REFERENCES:
VARIABLESBOTTOMLEFT NVLAT NVLONRIGHT TOP
FUNCTIONS AND SUBROUTINESBEG SEG CLIP END SEG GET REAL GET WORDGRID NAV LINENEARPT
-144-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NEARPTBOUNDS.FORDSPSLWAREASCALL NEARPT(PTR,LABEL,TOTAL)
PURPOSE:To select a vector end-point for boundary labeling.
DESCRIPTION:This procedure steps through the latitude and longitude
pairs stored for map boundary lines. The first item in thecalling parameter list is the address of the boundary in the
system database. Two items are returned to the caller. Thetotal number of latitude/longitude pairs is returned along
with the index of the point selected to receive the boundary
label. The selected end-point is the one closest to the map
background screen center. An approximation is used to find
the distance from screen center. The absolute value of the
latitude and longitude difference between the end-point and
screen center are summed. This process usually selects a
good place for the boundary label with little processing
expense.
GLOBAL REFERENCES:
VARIABLES
NVLAT NVLON
FUNCTIONS AND SUBROUTINES
GET REAL
-145-
MODULENAME:FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
MAP AIRWAY
MAP AIRWAY.FOR
DSPSLW
OPTION
CALL MAP AIRWAY
PURPOSE:
To draw selected airways on the map display.
DESCRIPTION:
This procedure generates the map background display
data for airways. When an airway is called up on the "NAV
data" page of the pilot's control display unit (CDU), the
database address is sent to the display MicroVAX. The
portions of the airway which fall within the map clip window
are sent as waypoint symbols and line segments. Clipping
may break the airway into several disjoint segments in the
map background buffer.
MAP AIRWAY steps through the waypoint addresses stored
at the airway address in the system database (AADCOM). A
zero terminator word marks the end of waypoint addresses in
the database. The procedure GET XY is called to compute
the X (east) and Y (north) offsets from the map background
screen center (in feet). The utility CLIP is then called
to determine the portion of the line segments, formed by
adjacent waypoints, that falls within the viewing window.
The map background utility procedures, described in section
7.2, are called to generate the line and waypoint symbols
in the background buffer. The names of the waypoints are
stored with the waypoint symbols for identification.
GLOBAL REFERENCES:
VARIABLES
BOTTOM LEFT RIGHT TOP
ARRAYS
LOKWPT
FUNCTIONS AND SUBROUTINES
BEG SEG CLIP END SEG GET WORD GET XY NAME SIZE NAV LINE
NAVWPT
-146-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
GET XYMAP AIRWAY.FORDSPSLWMAP AIRWAYCALL GET_XY(PTR,WPT_PTR,X,Y)
PURPOSE:To compute airway waypoint positions.
DESCRIPTION:This procedure is called with an address pointer to
airway data stored in the system database. The waypointaddress pointed to is fetched and returned as the seconditem in the calling parameter list. The waypoint address isthen used to fetch the latitude and longitude of the way-point. The procedure GRID is called to convert the latitude
and longitude to X (east) and Y (north) offsets from the map
background screen center (in feet). The computed values are
returned to the caller through the last two calling param-
eters.
GLOBAL REFERENCES:
VARIABLES
NVLAT NVLON
FUNCTIONS AND SUBROUTINES
GET LONG GET REAL GRID
-147-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NAMESIZEMAP AIRWAY.FORDSPSLWMAP AIRWAYLENGTH= NAME SIZE (POINTER)
PURPOSE:To determine waypoint name length.
DESCRIPTION:Different types of waypoints in the system database
have different name lengths. Navigation aids use threecharacter names, airfields have four, and geographicreference points have five letters in their names. Thismodule is passed a pointer to a waypoint in the systemdatabase. It determines the type of waypoint and returns tothe caller the length of the name stored at that address.
The waypoint type is determined by the format definedfor the system database. This is described in detail inthe flight management documentation, in the CDU section.When the fourth byte at the waypoint address is negative,the waypoint is a navigation aid. When the fifth byte is ablank character, its an airfield. Otherwise the waypoint isa geographic reference point.
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINESGET BYTE
-148-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NAVSLWNAVSLW.FORDSPSLWDSPSLWCALL NAVSLW
PURPOSE:To control the NAV background updating for the various
NAV formats running in the display system.
DESCRIPTION:iThis is the main procedure for the generation of NAV
display background data. The Sperry microprocessor systemmay have from one to four NAY formats loaded and running.Each format has unique background data requirements. Whenthe background of a NAV format needs to be updated thecorresponding update flag, UPD(1) through UPD(4), is set byone of the routines FMTBZL or NAVEXC. Section 7.1 describesthe format of the map background buffer.
The same 400 word output buffer is sent to the displaymicroprocessors to update any of the NAV formats running inthe system. However the amount of data generated for asingle NAY format may be up to 800 words. A two step mapbackground update will occur when more than 400 words of
data are generated. It is the job of NAVSLW to control the
use of the map background buffer, restricting its use to
alleviate conflicts. The buffer is not available to other
NAV formats while an update is in progress.
The task DSPSLW, which contains NAVSLW, runs at the
lowest priority in the display MicroVAX (see section 2.1).
This means that NAVSLW does not run in a fixed time frame,
but runs whenever spare time is available. Since all I/O
is performed in the main 50 millisecond frame, NAVSLW must
perform synchronization steps to assure data integrity.
Without the proper control two problems would occur. The
data could be transmitted to the display system before the
background buffer is finished, or the changes to the buffer
for another NAY format could start before the last one was
transmitted. The first potential problem is solved by the
"Map Control Word" described in section 7.1. This word is
not set until the background buffer is ready to go. Even
when the high priority I/O task interrupts the execution of
NAVSLW and sends the incomplete buffer, no NAV format will
try to use the data until a valid Map Control Word has been
set. The problem of changing the data in the buffer before
transmission is eliminated by requiring that two increments
of the fifty millisecond counter have occurred between
background updates. This assures that the transmission has
been done at least once. Two increments are used, instead
of one, because the I/O takes place during the last I0
-149-
milliseconds of the 50 millisecond frame (frame #4). Thetask DSPSLWmay gain control of the system before that pointif no other tasks require the system. In this case the
frame counter would have incremented but the completed
buffer would not have been transmitted. Waiting two frames
eliminates that possibility.
NAVSLW starts by checking if the background buffer is
available (BWAIT). If it is unavailable it returns, unless
the two frame wait has expired. When the wait is complete
the Map Control Word is cleared so any new update requests
can use the background buffer, unless the second half of a
two part buffer needs to be sent. BUSFMT is called to
process the second part after the timer expires and the
original data block was greater than 400 words.
When the map background buffer is available, the
background update request flags for the NAV formats are
tested to determine when an update is needed. The update
process will start for the first map which has an update
flag set. Other NAY formats must wait until the background
buffer is available before their update request will be
serviced. A background update consists of calls to the
subroutines NAVUPD and BUSFMT. The responsibility of NAVUPD
is to create background data designated for a particular NAY
format. The generated data is saved in an 800 word scratch
buffer called NAVDAT. The new data is then set up in the
map background output buffer (OUTDAT) by calling BUSFMT.
The map control word is managed by BUSFMT also.
While stepping through the update request flags for
each map, NAVSLW checks the map orientation status in the
map mode structure (NVMODE). If any of the active maps is
in the "North-up" mode a flag bit is set in one of the words
(DISPST) sent to the FM/FC MicroVAX computer. When a map is
in "North-up" mode, the LEGS page of the CDU shows special
tags to allow the flight crew to step through the flight
plan.
GLOBAL REFERENCES:
VARIABLES
BKWAIT* CNT50 DISPST* DOUBLE FSAVE
ARRAYS
MAPID* UPD
RECORD ARRAYS
NVMODE
FUNCTIONS AND SUBROUTINES
BUSFMT NAVUPD
-150-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NAVUPDNAVSLW.FORDSPSLWNAVSLWCALL NAVUPD(MAPINDEX)
PURPOSE:To create data for map background updates.
DESCRIPTION:This procedure is called when one of the map background
update requests has been granted. The index of the selectedmap is passed as the sole calling parameter. The functionof NAVUPD is to oversee the creation of the background data
for the selected map.
Several variables are setup for use by the various
background display modules. This includes the feet to
screen units (one thousandths inches) conversion factor,
map clip window boundaries, and map center position.
The first four words of the background buffer contain
the start of transmission group (SOT) and the mode control
group (see section 7.1). The first word is the SOT header
and the second is the SOT word count, which is filled in by
BUSFMT after all the data is generated. The third and
fourth words are the control group header and mode control
bits respectively. The mode control bits are set from the
map control structure which reflects the current status of
the map bezel panel buttons. The remainder of the data
buffer is created by calls to PATHS, BOUNDS, TEXT, and
OPTION.
GLOBAL REFERENCES:
VARIABLES
BOTTOM* LAT LATCEN LEFT LON LONCEN NAVPTR* NVLAT* NVLON*
NVUNIT* RIGHT TOP*
ARRAYS
NAVDAT
RECORD ARRAYS
NVFMT NVMODE
FUNCTIONS AND SUBROUTINES
BOUNDS OPTION PATHS TEXT
-151 -
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
BUSFMTNAVSLW.FORDSPSLWNAVSLWCALL BUSFMT(MAP_INDEX)
PURPOSE:To store map background data in the background output
areas for transmission to the microprocessor displays.
DESCRIPTION:This procedure moves the completed map background data
to the background output buffer and sets the proper codesin the map control word to enable acceptance of the datafrom the designated map format microprocessor. The Startof Transmission (SOT) count within the buffer is set at thistime (see section 7.1). The upper two bits of the SOT countare set to the index (I-4) of the map being updated. Thisindex allows the selected navigation format to choose thecorrect map center displacement from the list stored in theoutput buffer (by NAVEXC).
The map control word is part of the I/O memory sent tothe microprocessor display system twenty times each second.The bit fields used control the usage of the map backgroundbuffer by individual map formats. The upper byte of thecontrol word is a sequence byte. Each time a new backgroundbuffer is completed this byte is incremented to signal thenavigation formats that fresh data is available. The firstfour bits of the lower byte of the map control worddesignate which of the maps should be the recipient of thenewly created background buffer. A code value is placed inthe four bits which is the sequence number of the micro-processor containing the destination navigation format. Thesecond nibble of the lower byte is used to flag the selectednavigation format that the set of data is the second part ofa two piece background buffer.
GLOBAL REFERENCES:
VARIABLESBKWAIT* CNT50 DOUBLE* FSAVE* NAVPTR
ARRAYSMAPID* NAVDATOUTDAT*
RECORDARRAYSNVFMT
-152-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
OPTIONOPTION.FORDSPSLWDSPSLWCALL OPTION (NAV ID)
PURPOSE:Controls the processing of map background data for
airports, GRPs, navigation aids, terrain features, originand destination airports and runways, tuned navaids, andlook-up reference points.
DESCRIPTION:OPTION acts as an executive for processing a large
subset of map background information. It calls a number ofsmaller modules to process specific types of information.OPTION and its set of called procedures are responsible forproducing background buffer data for bezel selected features(airports, GRPs, navaids, terrain features), look-up refer-ence points, origin and destination airport information, andreference point information selected via the CDU Fix pages.
Up to four unique NAY formats are allowed in thecurrent display system setup. Since each NAV may selectdifferent map scales and bezels, it is necessary for OPTIONto know what the selections are for the map it is currentlyprocessing. The input parameter NAY ID provides this infor-mation.
One of the responsibilities of this procedure is toproduce the data necessary to display a symbol selected onthe Nav Data page. The array LOKWPTprovides an addressinto the navigation database for the information requested,and an index indicating the type of symbol to display,respectively. The following table lists the possible valuesof LOKWPT(2) and the type of symbol it produces.
LOKWPT(2) symbol
1 navaid2 airfield3 GRP5 waypoint series
The last entry in the table refers to a series of waypoints
that can be included in the flight plan. The module
MAP AIRWAY produces the data necessary to display the set
of waypoints.
OPTION calls AIRPRT to process origin and destination
airports and runways, and calls STRIPS to process the bezel
selected information for airports, terrain, navaids, and
GRPs. OPTION also determines if the tuned navaids, DME 2
and DME 3 are selected, and if so calls NAVAID which will
store the appropriate data in the background buffer.
-153-
The last thing done in this procedure is to look forany reference points selected on the CDU Fix pages. Amaximum of two fixes can be selected. Each element of thearray FIXWRD corresponds to one of the fixes that can be
chosen, and contains information about the fix. The least
significant bit of each word indicates whether a fix has
been selected. RADIAL is called to process the Fix pageselections.
Module descriptions for routines mentioned above
(AIRPRT, STRIPS, NAVAID, RADIAL, MAP_AIRWAY) can also befound in this section, and should be referenced if more
detailed information is desired on what they do.
GLOBAL REFERENCES:
VARIABLES
BOTTOM LEFT NVAD2A NVAD3A NVID NVLAT NVLON RIGHT SCALE*TDWR LAT TDWR LON TOP
ARRAYS
FIXWRD LOKWPT
RECORD ARRAYS
NVMODE
FUNCTIONS AND SUBROUTINES
AIRPRT GET REAL GET WORD GRID MAP AIRWAY NAVAID NAVSMBNAV SYMBOL--POSBTS R/_DIAL STRIPS --
-154-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
AIRPRTOPTION.FORDSPSLWOPTIONCALL AIRPRT
PURPOSE:Controls the processing of the origin and destination
airports and runways, and also look-up runways.
DESCRIPTION:Most of the processing done in this routine is based on
the values found in the array AIRPTS. This array containsaddresses into the navigation database for informationconcerning origin, provisional destination, and activedestination airports and runways. It is arranged asfollows.
airfield runway
originprovisional destactive dest
AIRPTS (i, i)AIRPTS (I, 2)AIRPTS (I, 3)
AIRPTS (2, i)AIRPTS (2, 2)AIRPTS (2, 3)
Runway symbols are shown on map scales of 2, 5, i0, and20 nautical miles if a non-zero address exists in the properAIRPTS location for the runway requested. If an address isfound, RUNWAYis called to pack the appropriate data intothe map background buffer. When a valid runway address doesnot exist, ARPSMBis called to process an airport symbolinstead. Origin and destination airports or runways arealways shown. Provisional destination airport informationis processed if the addresses for provisional and activedestination airfields in AIRPTS differ from each other. On
map scales of 40 and 80 nautical miles airport symbols only
are displayed.
Runways may be looked-up via the CDU. An address into
the navigation database for the runway information requested
is stored in the array element LOKWPT(1). As described
above, look-up runways are processed by the routine RUNWAY,
and are only shown on lower map scales.
GLOBAL REFERENCES:
VARIABLES
SCALE
ARRAYS
AIRPTS LOKWPT
FUNCTIONS AND SUBROUTINES
ARPSMB RUNWAY
-155-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
ARPSMBOPTION.FORDSPSLWAIRPRTCALL ARPSMB (ARPT_ADDR)
PURPOSE:Processes the data required to display an airfield.
DESCRIPTION:ARPSMBaccepts as input an address in the navigation
database where information about an airfield to be displayedis stored. If the address is valid (non-zero), the latitudeand longitude is fetched. The utility routines GRID andPOSBTS convert the positions into screen coordinates, anddetermine if the airfield lies within the view screen. Ifso, the runway azimuth is retrieved as well. The procedureNAV SYMBOLwill pack the information gotten from the data-base, along with a four character name it fetches, into themap background buffer. For more information aboutNAV SYMBOLrefer to section 7.2.
GLOBAL REFERENCES:
VARIABLESBOTTOMLEFT NVLAT NVLONRIGHT TOP
FUNCTIONSAND SUBROUTINESGET REAL GRID NAV SYMBOLPOSBTS
-156-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NAVAIDOPTION.DOCDSPSLWOPTION, STRIPSCALL NAVAID (TUNE_FLG,NAVAID_ADDR)
PURPOSE:Processes the data necessary to display a navaid.
DESCRIPTION:This procedure calls the utility routines required to
store information in the map background buffer for arequested navaid. Inputs passed in are a flag indicatingtune status, and an address into the navigation database forinformation concerning the navaid. A navaid will bedisplayed if any one of the following conditions exist: thenavaid is tuned, the map scale is 40 nautical miles or less,or it is a high altitude navaid. A bit in one of the
database words fetched indicates high altitude status.
Calls to GRID and POSBTS are made to determine if the navaid
is within the viewing screen. If it is, NAVSMB is called to
determine the appropriate symbol to display (there are three
types), and the color (tuned and non-tuned navaids are
different colors). The latitude and longitude positions,
navaid classification, and a three-character name are stored
in the background buffer.
NAVAID may be called in one of two ways: to process a
single tuned navaid, or to process from the database the
entire set of navaids within a particular longitudinal strip.
GLOBAL REFERENCES:
VARIABLES
BOTTOM LEFT NVLAT NVLON RIGHT SCALE TOP
FUNCTIONS AND SUBROUTINES
GET REAL GET WORD GRID NAVSMB NAV SYMBOL POSBTS
-157-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NAVSMBOPTION.FORDSPSLWOPTION, NAVAID, RADIALCALL NAVSMB (TUNE FLG,TYPE,CLASS)
PURPOSE:Determines the type of navaid symbol to display.
DESCRIPTION:Three types of navigation aids (Navaids) may be shown
on the map. They are: VORs, VORTACs, and non-directionalbeacons. As input to this routine, a data word fetched fromthe area of the navigation database containing informationabout the navaid being processed is sent to NAVSMBin theform of the parameter TYPE. Certain bits of this word arechecked to determine which one of the three types is to bedisplayed. Also, navaids may be tuned or non-tuned, whichon the screen will result in different color symbols beingshown. Tuned Navaids are depicted in green, non-tuned arewhite. The input parameter TUNE FLG indicates the approp-riate state. CLASS is an output parameter which containsthe result of the processing done by NAVSMB, which is asingle word indicating navaid type and tuned status.
-158-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
RADIALOPTION.FORDSPSLWOPTIONCALL RADIAL (INDEX)
PURPOSE:Processes the data required to draw radials through,
or a circle around, a selected reference point.
DESCRIPTION:
This procedure processes information entered on the
CDU Fix pages. By means of the Fix page, a reference point
may be displayed on the map with radials drawn through it
at bearings selected on the CDU page. Also, a circle can
be drawn around the point at a fixed radius in nautical
miles. The CDU Fix page allows for up to two fixes to be
selected. The input parameter to RADIAL is an index indi-
cating which fix is being processed.
Certain global variables contain information used in
drawing the selected reference point (SRP) symbology.
Bits in the variable FIXWRD indicate whether the fix is
active, how many bearings have been entered, and what type
of SRP has been chosen. FIXADD contains the address into
the navigation database of the SRP information. If a circle
around the SRP has been requested on the Fix page, FIXCIR
contains the radius entered in nautical miles.
The basic SRP symbol consists of a fixed size circle
drawn around a selected reference point, with two radials
extending from the edge of the circle in opposite directions
at a bearing entered on the Fix page. Up to four bearings
can be selected for a particular fix. A SRP symbol will be
displayed for each bearing requested, which means that up to
four SRP symbols may overlay the same reference point.
Three types of reference points may be selected on the
Fix page. They are navaids, airports, and GRPs. Using
FIXADD, the reference point's position is fetched from the
database. The position must be within the screen viewing
area before the SRP symbology can be processed. The utility
procedures GRID and POSBTS are used to determine this, and
also to convert the lat/lon position to screen coordinates.
NAV SYMBOL is called to pack the SRP data into the back-
ground buffer.
The Fix page also allows for a circle to be drawn, at
a selected radius, around a reference point. FIXCIR con-
tains the entered radius value. The map background utility
routines BEG_SEG, NAV ARC, and ENG SEG produce the buffer
data necessary to display the circle. For more information
about these modules, and NAV_SYMBOL, reference section 7_2.
-159-
GLOBAL REFERENCES:
VARIABLESBOTTOMLEFT MAGYARNVLAT NVLONRIGHT TOP
ARRAYSFIXADD FIXCIR FIXRAD FIXWRD
FUNCTIONSAND SUBROUTINESANGL BEG SEG END SEG GET REAL GET WORDGRID NAVSMBNAY ARCNAV SYMBOLPOSBTS
-160-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
RUNWAYOPTION.FORDSPSLWAIRPRTCALL RUNWAY(TYPE,RWY_ADDR,ARPT_ADDR)
PURPOSE:Processes the data for the origin, destination, and
look-up runways, and also the runway centerline.
DESCRIPTION:RUNWAYis responsible for retrieving information about
a requested runway from the navigation database, and callingthe utility routines necessary to store the data in the mapbackground buffer. Inputs to this routine are: a flagindicating runway type, a database address for the runway,and a database address for the runway's airfieldrespectively.
Using the runway address, the latitude and longitudeposition, runway length, and azimuth, are fetched. Theutility routines GRID and POSBTSare called to convert thethreshold position to screen coordinates, and to determineif it lies within the view screen. If it does, NAV SYMBOLis called to pack the position, azimuth, length, ann runwaytag into the background buffer (see section 7.2 for moreinformation about NAV SYMBOL. The input parameter TYPE isused in figuring the proper tag to display. A two-charactertag corresponding to the runway number is displayed for alook-up runway, while origin and destination runways aretagged with a four-character name identifying the runway'sairfield. The input parameter containing the airfield'saddress is used to retrieve the airfield name from thedatabase.
Origin and destination runways will have a centerlinedrawn in addition to the symbol. The centerline is a fixedI0 nautical mile length, and is drawn as a green dottedline. It is clipped at the screen edge if necessary. Theutility routines BEG_SEG, NAV LINE, and END SEG put thecenterline data into the background buffer. Section 7.2describes these modules in more detail.
GLOBAL REFERENCES:
VARIABLESBOTTOMLEFT NVLAT NVLONRIGHT TOP
FUNCTIONSAND SUBROUTINESBEG SEG CLIP END SEG GET REAL GRID NAV LINE NAV SYMBOLPOSBTS SCOSD
-161-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
STRIPSOPTION.FORDSPSLWOPTIONCALL STRIPS
PURPOSE:Searches for and processes the longitudinal strip
information in the navigation database corresponding to theregion currently mapped by the NAV format.
DESCRIPTION:Most of the information contained in the database is
arranged in groups of longitudinal strips. A strip isbounded by a pair of longitudinal values which differ bytwo degrees (for example, 76 through 78 degrees longitude).Within it are sets of data for the airports, GRPs, navaids,terrain features, among other things, found in that region.This routine determines which strips of data lie inside theview screen, and processes any data requested within thatstrip.
STRIPS sequentially examines all the longitude pairsin the database. The utility routine GRID determines if aparticular pair is within the screen area. If it is, thenthe airfield, navaid, terrain, and GRP data for that stripis processed if the corresponding bezel has been pressed on.Each strip has address pointers for the four data types,which are used in referencing the appropriate databaselocation.
The rest of this module description assumes that aparticular strip has been determined to be inside the view-ing area, and the bezel for the feature being described ison. The procedures GRID and POSBTSdetermine if the lati-tude and longitude position of the individual members ofeach data feature are within screen limits. The map back-ground utility routine NAV SYMBOLpacks up the informationnecessary to display a symbol into the background buffer.For more information on NAV SYMBOLrefer to section 7.2.
The first data feature--processed in STRIPS is airports.To display an airfield the latitude and longitude positionis required, and also a four-character airfield name.
Navaids are processed next. The NAV routines NAVAIDand NAVSMBare called to do that. Their module descrip-tions, also found in this section, explain in detail thetypes of navaids that exist, the conditions under whichthey are shown, and the information required by the NAVformat to display them.
There are two types of terrain features: obstructionsand mountains. The mountain bezel activates both. Mountainand obstruction information is grouped together in the
-162-
database. The most significant bit in the first data wordfor an individual symbol is used to differentiate betweenthe two. If the bit is set, an obstruction is processed,
otherwise a mountain. Obstructions are only shown on map
scales of 20 nautical miles or less. A lat/lon position
converted to screen units and a tag indicating the obstruc-
tion's height in feet, are packed into the buffer. For
mountains, a position and a tag representing the mountain's
height in hundreds of feet are packed.
The last data feature processed in STRIPS is GRPs.
GRPs are not shown on the 80 nautical mile map scale, and
only high altitude GRPs are displayed at 20 and 40 nautical
miles. A specific bit set in the first word from the GRP's
data area indicates that it is a high altitude GRP. A
screen position, and a five-character name are packed into
the map background buffer.
GLOBAL REFERENCES:
VARIABLES
BOTTOM IBPTR LEFT NVID NVLAT NVLON RIGHT SCALE TOP
RECORD ARRAYS
NVMODE
FUNCTIONS AND SUBROUTINES
GET CHAR GET LONG GET REAL GET WORD GRID LIB$SKPC NAVAID
NAV SYMBOL POSBTS
-163-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PATHSPATHS.FORDSPSLWNAVUPDCALL PATHS(MAP INDEX)
PURPOSE:To initiate the generation of flight plan displays.
DESCRIPTION:This module creates flight plan data for the naviga-
tion display format. This includes the provisional and
active flight plans, when generated by the FM/FC MicroVAX
computer from flight crew entries on the CDU. The module
PLAN is called to draw a series of connected flight plan
elements (straight line and arc segments). Only one call to
PLAN is needed to create the map background data for the
active flight plan since the active path is always one
connected piece. The provisional path may be a set of
disjoint path segments, separated by "Route Discontinuities"
on the pilot's CDU. The provisional flight plan is parsed
by PATHS to identify each separate flight plan section. A
separate call to PLAN is made for each section found.
GLOBAL REFERENCES:
VARIABLES
ACTCNT MODCNT PMODE TXTMOD*
RECORD ARRAYS
ACT WPTS MOD WPTS NVMODE
FUNCTIONS AND SUBROUTINES
PLAN
-164-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PLANPATHS.FORDSPSLWPATHSCALL PLAN(WAYPOINTS,COUNT,TYPE)
PURPOSE:To generate map background data for a flight plan
segment.
DESCRIPTION:This procedure is called to draw flight plan paths.
The buffer containing the flight plan waypoints is passedas the first calling parameter. The number of waypointscontained in the buffer is the second parameter and thetype of flight plan, active or provisional, is third.
PLAN makes calls to the utility GRID to convertlatitude and longitude coordinates to X (east) and Y (north)offsets from map background screen center (in feet). Thenone of three subroutines is called to create path data,dependent on the type of flight plan leg being processed.If the current waypoint is a DMA turn entry point, LEG is
called to draw the straight line approach. If the current
waypoint is an exit to a DMA turn, the module DMA is called
to generate the DMA arc. Otherwise a straight line segment
will be drawn unless the "pass-by" distance at the waypoint
as shown at the current map scale is greater than .I inches.
In this situation the procedure TURN is called to create the
"pass-by" turn segment.
When a flight plan is made up of only one waypoint,
PLAN tests for positioning within the clipping window and
if valid, calls NAV SYMBOL to store the waypoint symbol.
GLOBAL REFERENCES:
VARIABLES
ACTCNT BOTTOM I* LEFT MODCNT NEWSEG NVLAT NVLON NVUNIT
RIGHT TOP X2 Y2
ARRAYS
AIRPTS TDAT X* Y*
FUNCTIONS AND SUBROUTINES
DMA END SEG GRID LEG NAV SYMBOL POSBTS TURN WPTXT
-165-
MODULENAME:FILE NAME:PROCESS:CALLED BY:
CALLING SEQUENCE:
LEGPATHS.FORDSPSLWPLAN, TURNCALL LEG(WAYPOINTS,COLOR,TEXT FLAG)
PURPOSE:To create a straight line segment of a flight plan.
DESCRIPTION:This subroutine calls map background utility procedures
to form a straight path segment with waypoint symbols.First the procedure CLIP is called to trim the path leg tothe display window boundaries. If the end of the line isclipped the current background drawing sequence is terminatedby calling END SEG. The global flag NEWSEGis set toindicate that a BEG_SEGcall must be made before any morepath segments are placed in the background buffer.
When the leg endpoint is within the clip window, themodule WPTXT is called to format the waypoint label for theleg endpoint. The utility procedure NAV WPT is called tostore the waypoint symbol and its label _n the backgroundbuffer. When LEG is called with the NEWSEGflag on, thelabeled waypoint symbol for the beginning point of the lineis stored if it falls within the clipping region.
GLOBAL REFERENCES:
VARIABLESBOTTOMI LEFT NEWSEG*RIGHT TOP
ARRAYSTDAT X Y
FUNCTIONSAND SUBROUTINESBEG SEG CLIP END SEG NAV LINE NAV WPT WPTXT
-166-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
DMAPATHS.FORDSPSLWPLANCALL DMA(WAYPOINTS,COLOR)
PURPOSE:To create a DMAturn segment of a flight plan.
DESCRIPTION:This subroutine calls map background utility procedures
to form a DMA turn path segment with waypoint symbols.
First the procedure CLIP is called to determine if the
entire turn segment is outside the clipping region. If it
is, the current background buffer drawing sequence is
terminated by calling END SEG and the global flag NEWSEG is
set to indicate that a BEG SEG call must be made before any
more path segments are plated in the background buffer. If
any of the arc falls within the clipping region the entire
turn segment is added to the current drawing sequence.
This is done because segment clipping is only performed on
straight lines.
The background utility NAV ARC is called to store the
arc segment in the background buffer. The turn angle, arc
radius, and inbound bearing parameters passed to NAV ARC
are all obtained from the waypoint buffer. Note that the
bearing found in the waypoint buffer for DMA turn segments
is actually perpendicular to the inbound tangent point.
Ninety degrees must be added or subtracted depending on the
turn direction (left or right from inbound course).
When the arc endpoint is within the clip window, the
module WPTXT is called to format the waypoint label for the
arc endpoint. The utility procedure NAV WPT is called to
store the waypoint symbol and its label in the background
buffer. When DMA is called with the NEWSEG flag on, the
labeled waypoint symbol for the beginning point of the arc
is stored if it falls within the clipping region.
GLOBAL REFERENCES:
VARIABLES
BOTTOM I LEFT NEWSEG* RIGHT TOP
ARRAYS
TDAT X Y
FUNCTIONS AND SUBROUTINES
ANGL BEG SEG CLIP END SEG NAV ARC NAV WPT WPTXT
-167-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
TURNPATHS.FORDSPSLWPLANCALL TURN(WAYPOINTS,COLOR)
PURPOSE:To create a turn segment for a flight plan.
DESCRIPTION:This subroutine calls map background utility procedures
to form an arc path segment with the "pass-by" waypointsymbol. TURN calls the utility procedure PROJECT to findthe inbound and outbound tangent points which define thestart and endpoints of the arc segment. Waypoint symbolsare not placed at these points. One waypoint symbol ispositioned off the arc at the intersection of the imaginaryinbound and outbound tangent lines. A straight leg isdrawn to the inbound tangent point. The display data forthis leg is generated by calling the procedure LEG.The procedure CLIP is called to determine if the entire turnsegment is outside the clipping region. If it is, thecurrent background buffer drawing sequence is terminated bycalling END SEG and the global flag NEWSEGis set toindicate that a BEG SEG call must be made before any morepath segments are placed in the background buffer. If anyof the arc falls within the clipping region the entire turnsegment is added to the current drawing sequence. This isdone because segment clipping is only performed on straightlines.
The background utility NAV ARC is called to store thearc segment in the background buffer. The turn angle, arcradius, and inbound bearing parameters passed to NAY ARCare all obtained from the waypoint buffer.
When the arc segment is within the clip window, themodule WPTXT is called to format the label text for the"pass-by" waypoint. The utility procedure NAV WPT is calledto store the waypoint symbol, its position, ann its label inthe background buffer.
GLOBAL REFERENCES:
VARIABLESBOTTOMI LEFT NEWSEG*NVLAT NVLONRIGHT TOP X2 Y2
ARRAYSTDAT X Y
FUNCTIONS AND SUBROUTINESBEG SEG CLIP END SEG GRID LEG MTH$ATAND2NAV ARC NAV WPTPROJECT WPTXT
-168-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
WPTXTPATHS.FORDSPSLWPLAN, LEG, DMA, TURNCALL WPTXT(INDEX,WAYPOINTSrCOUNT)
PURPOSE:To format waypoint labels for the flight plan.
DESCRIPTION:This procedure is called with a waypoint buffer and the
corresponding index designating which waypoint within thebuffer is being processed. Label text is generated in theglobal buffer TDAT and the number of characters created forthe label is returned in the last calling parameter. Theextent of the label depends on the global index TXTMOD. The
following chart describes what is included in the waypoint
label for the possible values of TXTMOD.
TXTMOD LABEL GENERATION
0
1
2
Include waypoint name only.
Include waypoint name, assigned altitude and ground
speed.If current waypoint is the 'TO' waypoint of the
active flight plan, process as TXTMOD = 0. Otherwise
no label is generated.
If current waypoint is the 'TO' waypoint of the
active flight plan, process as TXTMOD = i. Otherwise
no label is generated.
When altitude and speed values are included in the label,
waypoint buffer flags are tested to determine when actual
values have been assigned. The label text will have dashes
instead of digits when no value is assigned.
GLOBAL REFERENCES:
VARIABLES
TDAT* TOWPT TXTMOD
FUNCTIONS AND SUBROUTINES
OTS$CVT L TI
-169-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
TEXTTEXT.FORDSPSLWNAVUPDCALL TEXT(MAP_INDEX)
PURPOSE:To update map background text lines.
DESCRIPTION:The Navigation display format allows the display of four
lines of text data, 19 characters per line, in the upperright hand corner of the display screen. The text data issupplied through the map background buffer (see section7.1). The sole calling parameter to TEXT is the index ofthe navigation format currently being updated.
The module TEXT builds a buffer of up to 19 characters,and uses the map background utility procedure NAY_TEXT toplace the text in the background buffer. Shown below is alist of the items included on each display line.
LINE #iITEM
distance to go'TO' wpt nametime of day
CONDITIONSwhen active flight plan existswhen active flight plan existsalways
LINE #2ITEM
airport indicatornavaid indicatortime box indicatorrange arc indicator
CONDITIONS'ARPT' bezel selected'NVD' bezel selected'BOX' bezel selected'ARC' bezel selected
LINE #3ITEM
terrain indicatorGRP indicatorboundary indicator
CONDITIONS'MTN/OBSTR' bezel selected'GRP' bezel selected'BNDS' bezel selected
LINE #4ITEM
2D/3D/4DTRK indicatorALT indicatorIAS indicatorFPA indicatornavigation mode
CONDITIONSwhen auto guidance engagedauto-track select mode engagedauto-altitude hold mode engagedauto throttle engagedauto-flight path angle engagedalways
-170-
GLOBAL REFERENCES:
VARIABLESALTSEL AWAS_BITS DATA_TM DAY DTOGOFE3 FPASEL GUID2DHORPTHHRAD_BHRIASSEL NAY TAS TASVLD TIME TIMPTHTKSEL TOWPTVERPTH
ARRAYSAWASDATA
RECORDARRAYSACT WPTSNVMODE
FUNCTIONS AND SUBROUTINESFMTTIM NAV_TEXT OTS$CVTL TI OTS$FLOATSTORE
-171-
Section 7.4 NAV REAL-TIME PROCEDURES
This section is devoted to the modules that createnavigation format real-time data. All the navigationformat symbology, except the map background, is updatedtwenty times per second. The procedures described inthis section format and store data into the microprocessoroutput buffer at this update rate.
The following chart lists the procedure names alongwith their source code language and relative size. Thosemodules that serve as utility subroutines to anotherprocedure are shown with their caller. The size provided isthe percentage of total NAV software memory usage.
Refer to Appendix A to identify which locations in theoutput buffer (OUTDAT) are used by these modules. Note thatlocations used for this format are tagged in the appendix bythe mnemonic "NAY". The following pages include moduledescriptions for each of the fifteen procedures.
MODULE SOURCE SIZE
FMTBZL FORTRAN 2%
NAVEXCSELTRKNAVMLSTRENDVRNGARCTBOXROTATE
FORTRAN 12%
PTHPOSTIMPOSLINETURNPASSBYINBRGPTHLEG
FORTRAN 12%
-172-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NAVEXCNAVEXC.FORDSPFSTDSPFSTCALL NAVEXC
PURPOSE:To serve as the main procedure for navigation format
real-time processing.
DESCRIPTION:This procedure initiates all the computations performed
for the navigation format real-time symbology. Most of theprocessing is performed by the modules called from NAVEXC,however several items are handled directly within NAVEXC.The following modules are called to create and store datainto the microprocessor output buffer.
FMTBZLSELTRKNAVMLSTRENDVRNGARCTBOX
process bezel button inputscreate data for selected track linescreate data for MLS airplane positioncreate data for the aircraft trend vectorcreate data for the altitude range arccreate data for time box positioning
The first "in-line" processing performed by NAVEXC isthe setting of map background update requests. The FM/FCMicroVAX computer can command updates of all map backgroundsby setting the global flag MAPUPD. This is done when newbackground data has been generated by CDU software or anupdate timer expires (5 seconds). The timer is used so theaircraft never can fly too far within the current mapbackground to expose the clipped edge. When MAPUPDis setNAVEXCdetermines how many of the four possible map back-grounds are actually in use. The update request flags foreach one is set on to notify map background procedures inDSPSLWto perform the updates.
A set of variables is filtered to produce smoothmovement of navigation format symbology. Included are windspeed, wind direction, aircraft track, and aircraft heading.The rate of change, sine, and cosine of the filtered track
are computed also.
Several microprocessor output buffer locations are
filled next. Values are scaled and stored as fixed point
16 bit integers for true track, magnetic track, heading,
wind speed, wind direction, and ground speed. Two words of
the microprocessor output buffer are reserved for validity
bits used for the navigation format. The corresponding b_ts
for true track, magnetic track, heading, wind, ground speed,
and aircraft position are always set valid. One other bit
of these words can be set by NAVEXC when GPS mode is valid.
The modules called by NAVEXC set other validity bits in
these words.
-173-
Each navigation format running in the microprocessorsystem requires information about where the aircraft hasmoved since its last map background update. The offsetfrom each map background center position to the currentaircraft position is computed and stored in the outputbuffer for the microprocessors. They are stored as an arrayof X (east) and Y (north) offsets in one-thousandths inches.Each time a navigation format has its map background updatedthe map center and scale are saved to allow the backgroundpositioning described above.
GLOBAL REFERENCES:
VARIABLESBCKWRDCOSTRKDOUBLEGPSMGSFPS HDGF HDGTRULAT LON MAGVARMAPUPDMAPWRDMLSV NVGS* NVHDG* NVLAT NYLONNVMTRK* NVTRK*NVUNIT NVWD* NVWS* PSTTKA SINTRK TK TKSEL TOP TRKF VLDI*VLD2* WD WS
ARRAYSAPE* APN* MAPLN* MAPLT* RANGE* UNITS* UPD*
RECORDARRAYSNVFMT
FUNCTIONS AND SUBROUTINESANGL FMTBZL GRID NAVMLSPOSBTSRNGARCSCOSDSELTRK TBOXTRENDV
-174-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SELTRKNAVEXC.FORDSPFSTNAVEXCCALL SELTRK(TRACK_RATE)
PURPOSE:TO store data for the selected track lines of the
navigation display format.
DESCRIPTION:This procedure processes items associated with the
selected track angle from the pilot's mode control panel.It is only called when a track angle is either selectedor preselected. Four symbols are controlled by thisprocedure.
SELECTEDTRACK BUG - Shown on compass whenever selectedtrack is valid.
TRACK LINE - Line connecting airplane and track bug shownwhen track error greater than one degree or the track dialspin discrete is set.
OFFSET VECTOR - Track line indicating selected trackintercept point starting from offset ahead of airplaneposition. Shown when track line on and bit "0" of TKBITS ismanually set.
EXTENDEDTREND VECTOR- Same as OFFSET VECTORbut shown asan extension to the NAV trend vector. Bit "i" of TKBITS isused to manually select it.
SELTRK first stores the selected track value and validbit into microprocessor output memory. Then the computa-tions for either the OFFSETVECTORor the EXTENDEDTRENDVECTORare performed.
The OFFSETVECTOR intercept point along the aircraft's"straight ahead" line is computed from the equation below.The offset vector extends from this point across the screenat the bearing of the selected track. The 16 bit fixedpoint value sent to the navigation format is converted tonautical miles and scaled by 128 for higher resolution.
AHEAD = GS * GS * TAN( .5 * DEL TRK) / (G * TAN(BANK ANG))
AHEAD: distance ahead (feet)
GS: ground speed (feet/sec)
DEL TRK: difference between actual and commanded track
BANK ANG: nominal bank angle fixed at 25 degrees
-175-
The amount of time required to complete a desired turnis computed and the corresponding position along the trendvector is used to draw the EXTENDEDTRENDVECTOR. Theequation for the time needed is shown below.
TIME = DEL TRK / (2 * TRK RATE)
TIME: time in seconds
DEL TRK: difference between actual and commanded track
TRK--RATE: rate of change of actual track
Note that the factor of "2" in the equation is used since
the track rate variable used by the displays MicroVAX is the
number of degrees of change in one half second. The 16 bit
fixed point value sent to the navigation format is scaled by
256 for greater resolution.
GLOBAL REFERENCES:
VARIABLES
GSFPS MAGVAR NVDT* NVOFS* NVSLTK* TDSP TKASUM TKBITS TKREL
VLDI* VLD2*
FUNCTIONS AND SUBROUTINES
ANGL MTH$TAN
-176-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
NAVMLSNAVEXC.FORDSPFSTNAVEXCCALL NAVMLS
PURPOSE:To perform computations for the MLS airplane symbol
of the navigation format.
DESCRIPTION:This procedure is called by NAVEXCwhen the Microwave
Landing System (MLS) has been determined valid. A bit isset in the navigation format discrete word to indicate MLSvalid. If MLS mode is engaged another bit is set in thediscrete word for the display format. If MLS mode is notengaged the position of the MLS aircraft, as indicated bythe MLS beam, is used to compute the offset from the aircraftposition derived from the current navigation mode. Thesubroutine GRID computes the north and east offset in feet.KOTATE is called to convert these coordinates into navigationformat "track-up" X and Y screen coordinates in feet. Thevalues are then converted to nautical miles and scaled bya factor of 2048 for resolution.
When the MLS airplane position deviates from the desiredflight plan position by more than 50 feet vertically and500 feet horizontally another discrete word bit is set tocommand a MLS aircraft symbol color change.
GLOBAL REFERENCES:
VARIABLESALTCORHER LAT L0N MLSALT MLSLAT MLSLONMLSMMLSX* MLSY*VLD2* XTK
FUNCTIONSAND SUBROUTINESGRID ROTATE
-177-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
TRENDYNAVEXC.FORDSPFSTNAVEXCCALL TRENDV
PURPOSE:To compute trend vector parameters for the navigation
format.
DESCRIPTION:Two items are stored by TRENDV into the microprocessor
output buffer for the navigation format trend vector. Theaircraft's cross-track acceleration and the ratio of cross-track acceleration with ground speed. They are scaled byfactors of 512 and 65536 respectively for resolution whenconverted to the 16 bit fixed point values sent to thenavigation format.
The cross-track acceleration used comes from one oftwo sources. If in a control-wheel steering mode thecurrent roll command is used to compute the cross-trackacceleration as follows.
CROSSTRACKACC = G * TAN(COMMANDED_ROLL)
The constant "G" above is the gravitational accelerationvalue. In other modes the cross-track acceleration measuredby flight controls is used. This value is filtered beforeuse to provide smooth movement of the trend vector.
GLOBAL REFERENCES:
VARIABLESACWSDROLL GSFPS NVACN* VCWSXTACC XTKGS*
FUNCTIONS AND SUBROUTINESMTH$TAN
-178-
MODULENA/_E:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
RNGARCNAVEXC.FORDSPFSTNAVEXCCALL RNGARC
PURPOSE:To perform computations for the altitude range arc of
the navigation format.
DESCRIPTION:Altitude range logic is performed by a sequence of
events starting in the flight management MicroVAX computer.When the flight crew has selected a new altitude via theAGCS mode control panel, the altitude attained flag is madefalse (ALTATT). This flag is sent to the display MicroVAXcomputer in the block of data transferred across the inter-processor I/O link. The range to the intercept point of thedesired altitude is computed by RNGARCuntil the differencebetween commanded and actual altitude is less than 5 feet.At this time the desired altitude is considered attained,but the variable ALTATT can not be set directly since itarrives at the display MicroVAX as input. Instead a bit ina packed discrete word that is sent to the flight managementMicroVAX through the DATACbus is set. This bit informs theflight management MicroVAX to set ALTATT to true.
The distance to the point where the altitude will beattained is computed differently depending on the currentguidance mode of the aircraft. When the current guidance
mode maintains a commanded flight path angle, all but
attitude control-wheel steering, the distance is computed
as follows.
DISTANCE = (SELECTED_ALT - ACTUALALT) / TAN(COMMANDED_FPA)
Otherwise the current measured rate of change in altitude is
used with the aircraft's ground speed as shown below.
DISTANCE = SPEED * (SELECTED ALT - ACTUAL ALT) / ALT RATE
The computed distance is converted from feet to
nautical miles and scaled by a factor of 128 for greater
resolution. It is stored as a 16 bit fixed point value in
the microprocessor output buffer.
GLOBAL REFERENCES:
VARIABLES
ALTATT ALTCOR ALTRNG* ALTSUM AUTO DISPST* GAMC GSFPS HDCF
VCWS
FUNCTIONS AND SUBROUTINES
MTH$TAND
-179-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
TBOXNAVEXC.FORDSPFSTNAVEXCCALL TBOX
PURPOSE:To intiate position computations for Time Box and
Bubbles symbology of the navigation format.
DESCRIPTION:This procedure stores the position and orientation data
for the Time Box and the three Bubbles. Each of the four
items is processed the same, with calls to PTHPOS. A
reference time is passed to PTHPOS for each of the four
items. The data returned is stored into the array of
locations in the microprocessor output buffer starting atOUTDAT(603).
The reference time used is the sum of two time offsets.
Since the system time (TIME) has a resolution of one second,
the fractional part of the current time is maintained by
TBOX. Added to this fraction is 0, 30, 60, or 90 seconds
for each of the four time box items, which are always
separated by 30 seconds in time.
GLOBAL REFERENCES:
VARIABLES
TIME
ARRAYS
OUTDAT*
FUNCTIONS AND SUBROUTINES
PTHPOS
-180-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
ROTATENAVEXC.FORDSPFSTNAVMLS, PTHPOSCALL ROTATE(NORTH,EAST,X,Y)
PURPOSE:To perform coordinate system rotations.
DESCRIPTION:This procedure converts a pair of position coordinates
in the North/East frame of reference to values in thenavigation format's "track-up" frame of reference. Theequations used are shown below.
SCREENX = EAST * COS(TRACK) - NORTH * SIN(TRACK)
SCREEN Y = EAST * SIN(TRACK) + NORTH * COS (TRACK)
GLOBAL REFERENCES:
VARIABLES
COSTRK SINTRK
-181-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PTHPOSPTHPOS.FORDSPFSTTBOXCALL PTHPOS(TIME,X,Y,BEARING)
PURPOSE:To compute values associated with the Time Box symbology
of the navigation format.
DESCRIPTION:This procedure computes the X and Y coordinates of a
point on the active flight plan, defined for time guidance,that corresponds to a reference time passed as the firstparameter. The reference time is an offset in seconds fromthe aircraft time stored in the variable TIME. The returnedposition values are in terms of feet from the current air-craft position. Also returned is an orientation angle whichrepresents the flight plan bearing at the reference position.All three computed values are relative to a "track-up"display orientation. Therefore X is a cross-track distance,Y is an along-track distance, and BEARING is the angulardifference from the aircraft's true track value.
PTHPOSpositions the Time Box symbology at the air-craft, with the current track, when no flight plan exists(GUID2D is off). If a flight plan exists but has not beendefined for time guidance (GUID4D is off), the position ofthe first waypoint on the flight plan is returned with thebearing of the first leg of the path.
When the active flight plan is defined for time guid-ance the procedure PTHLEG is called. It returns an indexinto the active waypoint buffer pointing to the first way-point which has a planned time of arrival greater than thereference time. This waypoint and the one before it forma time reference path leg containing the desired referenceposition. The difference between the reference time and thebeginning waypoint of the chosen path leg is also returned.
This time represents the amount of time elapsed since the
Time Box (or Bubble) has passed the first waypoint of the
flight plan leg selected by PTHLEG. Note that PTHPOS
returns the position of the first flight plan waypoint when
the reference time is earlier than the beginning waypoint
of the path.
The reference position is found on the reference leg by
the procedure TIMPOS. This module returns a north and east
offset (in feet) of the time reference position relative to
the selected reference waypoint on the leg. One exception
to this is when the reference leg is a staight leg (LEGFLG
= TRUE). In this case the position values returned from
TIMPOS are latitude and longitude coordinates. TIMPOS also
returns the orientation bearing of the reference position.
-182-
The last thing performed by PTHPOS is the computationof screen offsets, in feet, of the time reference positionfrom the current aircraft location. The utility procedureGRID is called to compute the north and east distances fromthe airplane to the time reference waypoint. The north andeast offsets to the time reference position on the selectedpath leg are added to the reference waypoint positions.Finally the procedure ROTATE is called to convert the northand east coordinates to values relative to the "track-up"map coordinate system.
GLOBAL REFERENCES:
VARIABLESACTCNT GUID2D GUID4D LAT LEGFLG LON TRKF
RECORDARRAYSACT WPTS
FUNCTIONS AND SUBROUTINESANGL GRID INBRG PTHLEG ROTATETIMPOS
-183-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
TIMPOS
PTHPOS.FOR
DSPFST
PTHPOS
CALL TIMPOS(INDEX, DT,DN,DE,BRNG)
PURPOSE:
To compute a time reference position on the active
flight plan.
DESCRIPTION:
This procedure computes displacement coordinates from a
selected waypoint to a flight plan position corresponding to
the time reference in the calling parameter list. The first
calling parameter is the index within the waypoint buffer of
the end waypoint of the path leg containing the time refer-
ence position. The second parameter is the amount of time
elapsed between the first waypoint of the path leg and the
time reference position. TIMPOS returns the north and east
offsets from the reference waypoint and the tangential path
bearing at the time reference position.
First the distance between the "from" waypoint and the
time reference position is calculated using the time dis-
placement between the locations. To do this the planned
acceleration along the path leg is computed as follows.
ACC = (SPEED2 - SPEED1) / LEG TIME
Then the distance is derived as shown below.
DISTANCE = SPEED1 * DT + .5 * ACC * DT * DT
ACC: nominal leg acceleration (ft/sec/sec)
SPEED1: planned ground speed at beginning waypoint
(ft/sec)
SPEED2: planned ground speed at ending waypoint
(ft/sec)
LEG TIME: time alloted to fly entire leg of path (sec)1
DISTANCE: distance between "from" waypoint and reference
position (feet)
DT: time between "from" waypoint and reference
position (sec)
Depending on the type of path leg being processed, one
of the modules TURN, LINE, or PASSBY will be called to
compute the values of the offset coordinates and the bearing
associated with the time reference position. The module
TURN is called when the reference leg is a DMA turn. In
this case the reference waypoint is switched from the end
-184-
waypoint to the beginning waypoint to make the computationseasier. When entering a standard turn by the destinationwaypoint the module PASSBY is called. Note that the legwill be considered a straight leg unless the standard turnis significant (arc length greater than 1200 feet). If thereference position falls within the exit area of a signif-icant standard turn past the beginning waypoint, thereference waypoint is switched to the "from" waypoint andPASSBY is called. In all other situations the module LINEis called to process the straight leg segment.
GLOBAL REFERENCES:
VARIABLESLEGFLG*
RECORDARRAYSACT WPTS
FUNCTIONS AND SUBROUTINESLINE PASSBY TURN
-185-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
LINEPTHPOS.FORDSPFSTTIMPOSCALL LINE(INDEX,DST,RLAT,RLON, BRNG)
PURPOSE:To locate the time reference position on a staight
path leg.
DESCRIPTION:This module uses the position of the reference way-
point, identified by the passed parameter INDEX, and thedistance from the 'FROM' waypoint on the reference leg (DST)to compute the offset coordinates and orientation bearingto the time reference position on straight leg segments.
Unless the 'TO' waypoint of the leg is a DMA turn entrypoint, the leg distance is adjusted to compensate for thestandard turn by the 'TO' waypoint. One half the arc lengthis replaced by the distance from the tangent point to the'TO' waypoint position. The distance between the timereference position to the end waypoint of the leg is foundby subtracting the distance passed to LINE from the totalleg distance. This value is passed to the utility procedurePROJECT to compute the time reference position's latitudeand longitude using the leg waypoints and displacement fromthe 'TO' waypoint.
GLOBAL REFERENCES:
VARIABLESLEGFLG*
RECORDARRAYSACT WPTS
FUNCTIONS AND SUBROUTINESINBRG PROJECT
-186-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
TURNPTHPOS.FORDSPFSTTIMPOS, PASSBYCALL TURN(INDEX,DST,DN, DE,BRNG,DME)
PURPOSE:To locate the time reference position on a turn
segment.
DESCRIPTION:This module uses the position of the reference way-
point, identified by the passed parameter INDEX, and thedistance from the "from" waypoint on the reference leg (DST)to compute the offset coordinates and orientation bearingto the time reference position on turn segments. Theoffsets and bearing are returned through the calling param-eter list. The last parameter passed to TURN identifiesturn segments which are defined as DMA arc path legs.
The distance from the turn start to the referenceposition is used with the turn radius to determine thesubtented angle (radians) to the reference position asfollows.
ANGLE = ARC DISTANCE / TURN RADIUS
The subtended angle is combined with the inbound bearing and
turn radius to compute the offsets to the time reference
position and the tangential bearing at that point. The
inbound bearing is passed to TURN when called by the module
PASSBY (DME FLG=FALSE). Otherwise the function INBRG is
used to find the DMA turn inbound bearing.
ang = ANGLE/2 - IN BEARING + (180 +/- 90)
len = 2 * SIN(ANGLE/2) * TURN RADIUS
NORTH = len * SIN(ang)
EAST = fen * COS(ang)
TANGENT BEARING = IN BEARING +/- ANGLE
( "+/-": + for left turn, - for right turn)
GLOBAL REFERENCES:
RECORD ARRAYS
ACT WPTS
FUNCTIONS AND SUBROUTINES
INBRG MTH$SIND SCOSD
-187-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PASSBYPTHPOS.FORDSPFSTTIMPOSCALL PASSBY{INDEX,DST,DN,DE, BRNG)
PURPOSE:TO locate the time reference position on a standard
turn segment (not DME arc).
DESCRIPTION:This module uses the position of the reference way-
point, identified by the passed parameter INDEX, and the
distance from the "from" waypoint on the reference leg (DST)
to compute the offset coordinates and orientation bearing
to the time reference position on turn segments. The
offsets and bearing are returned through the calling param-eter list.
Standard turns do not have waypoints at the beginning
and ending of the arc segment. The latitude and longitude
of the inbound tangent point of the turn must be found to
use in the computation of the time reference position. The
utility procedure PROJECT is called to compute the tangent
point position from the positions of the 'FROM' and 'TO'
waypoints and the distance to tangent value stored in the
waypoint buffer. Once the start of the turn position has
been established, the procedure TURN is called to compute
the time reference position relative to the turn start
point. The module GRID is then called to compute the north
and east offsets from the turn tangent point to the 'TO'
waypoint. These offsets are added to the values returned
by TURN to produce the final time reference offset values
relative to the reference waypoint.
GLOBAL REFERENCES:
RECORD ARRAYS
ACT WPTS
FUNCTIONS AND SUBROUTINES
GRID MTH$ATAND2 PROJECT TURN
-188-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
INBRGPTHPOS.FORDSPFSTPTHPOS, LINE, TURNBEARING = INBRG(INDEX)
PURPOSE:To produce the inbound bearing to a flight plan
waypoint.
DESCRIPTION:This function returns the inbound bearing to a waypoint
on the active flight plan. For waypoints that are not DMAturn entry points, the bearing is fetched directly from thewaypoint buffer. For DMAentry waypoints the buffer valueis the bearing from the turn center to the entry waypoint.Ninety degrees is either added or subtracted to the waypointbuffer bearing as an adjustment. Addition is used for rightturns, subtraction for left turns.
GLOBAL REFERENCES:
RECORDARRAYSACT WPTS
FUNCTIONSAND SUBROUTINESANGL
-189-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PTHLEGPTHPOS.FORDSPFSTPTHPOSCALL PTHLEG(T_REF,INDEX, T OFF)
PURPOSE:To identify the flight plan leg containing the time
reference position for Time Box positioning.
DESCRIPTION:This procedure is called to find the flight plan leg
containing the time reference position corresponding toeither the Time Box or one of the Bubbles. A time offset ispassed as the first calling parameter. This value is addedto the aircraft GMTto produce the arrival time at thedesired reference position. The arrival times at the endwaypoint of each leg on the active flight plan are testeduntil one greater than the reference time is found. Theindex of the waypoint within the flight plan buffer isreturned through the parameter list. Also returned is thetime displacement between the reference time and the arrivaltime stored at the beginning waypoint of the selected pathleg.
GLOBAL REFERENCES:
VARIABLESACTCNT TIME
RECORDARRAYSACT WPTS
-190-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
FMTBZLFMTBZL.FORDSPFSTNAVEXCCALL FMTBZL
PURPOSE:To process navigation format bezel button inputs.
DESCRIPTION:This module processes the navigation display bezel
panel inputs. One 16 bit word is received from the displaycontaining bits corresponding to the 16 buttons on thedisplay unit bezel panel. Up to four navigation formats maybe active, so a word from input memory for each is examined.The address of each input word is stored in the structure"NVFMT(I).BZPTR". The following chart shows the usage of
the various bezel buttons.
BIT BUTTON OPTION
0 R1
1 R2
2 R3
3 R4
4 R5
5 R6
6 R7
7 R8
8 L1
9 L2
10 L3
Ii L4
12 L5
13 L6
14 L7
15 L8
MLS select
Airports option
Navaid option
Time Box option
Altitude Range Arc option
Path waypoint information cycle
Zoom out map
Zoom in map
Weather radar select
Terrain features option
Ground reference point option
Boundaries option
Track up / north up toggle
The input words are processed in a loop for each of the
navigation formats in use. The individual discrete words
are "one-shotted" to make a button press appear to occur for
just one 50 millisecond processing frame. If any selections
in the word are made, the map background update flag for the
corresponding navigation format is set on. The individual
bits within the word are processed next. When the MLS
select is on, a bit in word (DISPST) sent to the flight
management MicroVAX through the DATAC is set. All other bit
selections are reflected in the navigation format mode
structure (NVMODE). Note that a copy of this structure is
kept for each of the four navigation formats.
-191-
GLOBAL REFERENCES:
VARIABLESDISPST* TDW TRGT*
ARRAYSUPD*
RECORDARRAYSNVFMT NVMODE*
FUNCTIONS AND SUBROUTINESGET WORD
-193-
Section 8.0 ENGINE DISPLAY SOFTWARE
The ENG format provides a graphic representation ofquantities associated with the aircraft engines. The formatis split into two distinct sections; simulated engine gaugeson the left and numeric displays on the right. Refer to thefigure 8.1 for the engine format layout.
The gauges are displayed as four sets of pairs,situated side by side. Each set depicts the same engineparameter, but pertaining to the left and right engines. Agauge has a digital readout, an arc section representing thevalid range of values for the particular quantity, and aradial pointer positioned along the arc at the appropriatelocation for the current value of the quantity. The fourengine parameters shown in this manner are the engine pres-sure ratio, N1 RPMpercentage, exhaust gas temperature, andfuel flow rate.
The right hand section of the display screen hasnumeric values of engine quantities displayed within rectan-gular boxes. Four miscellaneous items, left/right thrustreverser armed messages, total air temperature, and aircraftgross weight, are also shown in this section. The engineoil pressure, temperature, and quantity along with the N2ratio are shown in left and right pairs. The amount of fuelremaining is given for the left, right, and center tanksalong with the total amount of the three tanks.
This format does not utilize any of the bezel panelbuttons or potentiometers.
_I_,,/,,,__;_JNT[fq.".I0_¢ALLYBLr"_,N_ PRECEDING PAGE BLANK NOT FILMED
-195-
ENGINE DTSPLRY FORMFtT
EPR
NI
EGT
FF
IREVnRM IREvARMI
82 I T T6
2.8 JO 3.8
F_NZ-----]
I 0.0 0.0
FUEL
C 6820
L 9050 IIR 9130
ITFQ 25000
TRT 15. 0 C
GW 85000
-figure 8.1-
_li..L,_._l_lIEN I iONALL'( BLAN_
PRECEDING PAGE BLANK NOT FILMED
-197-
Section 8.1 ENGINE PROCEDURES
There are five procedures dedicated to creating the
output buffer data needed to display the engine format.
The following chart lists the procedures along with the
source code language and relative size. Those modules
that serve as utility subroutines to another procedure are
shown with their caller. The size is the percentage of
total ENG software memory usage.
Refer to Appendix A to identify the memory locations
in the output buffer (OUTDAT) that are used by the engineroutines. The mnemonic "ENG" identifies those locations.
Descriptions of the engine modules appear on the following
pages.
MODULE SOURCE SIZE
ENGEXC FORTRAN
EPR F1 FORTRAN
EPR F2 FORTRAN
67%
FFPRC FORTRAN 21%
FTEST FORTRAN 12%
PRECEDINGPAGEBLANKNOTFILMED
-198-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
ENGEXC
ENGEXC.FOR
DSPFST
DSPFST
CALL ENGEXC
PURPOSE:
To scale and store the engine format's parameters as
integers in the display output buffer.
DESCRIPTION:
ENGEXC manages the processing of the data used as input
parameters to the engine display format, and stores it into
the display output buffer. Floating point data is scaled
and stored as integers. Some of the engine parameters have
values for both the left and right engines. These param-
eters are shown next.
Engine pressure ratio
Engine exhaust gas temperature
Engine N1
Engine fuel flow
Engine oil pressure
Engine oil temperature
Engine oil quantity
Engine N2
Engine thrust reversers armed
Many of the parameters mentioned above have fixed
warning limit and caution values. They are also scaled and
stored in the output buffer. The fixed values are as
follows.
Exhaust gas temperature limit
Exhaust gas temperature caution
Engine N1 limit
Engine N1 caution
Engine oil pressure lower limit
Engine oil pressure upper limit
Engine oil temperature limit
Engine oil quantity limit
Engine N2 limit
(570 deg)
(535 deg)
(I00.1%)
(94.0 %)
(35 psi)
(55 psi)
(157 deg)
(i. 0 gal)
(i00.0 %)
The engine pressure ratio (EPR) warning limit is fixed
at 2.0 when the airplane is travelling less than 64 knots,
otherwise the limit is determined via lookup tables. There
are two sets of tables: one for cruise limits (flaps set at
zero), and the other for takeoff limits (flaps non-zero).
The functions EPR F1 and EPR F2 perform the table iookups
based on current air temperature and altitude. The EPR
caution value is set to the EPR limit value minus 0.2.
-199-
To display the fuel quantities for the left, center,and right fuel tanks requires extra processing. The algo-rithm used is based on the premise that fuel is drawn fromthe center tank until less than i00 pounds remains, then itis drawn from the left and right tanks equally. The leftand right tanks are initialized to 9050 and 9130 pounds re-spectively. The center fuel tank display will show the dif-ference between the total fuel quantity and these two values.When the center tank display reaches i00 pounds, it willfreeze at that value and fuel will be siphoned from the leftand right tanks. The 80 pound difference between the twotanks remains as fuel is drawn equally from them.
The engine N1 and N2 percentages for both the left andright engines are also displayed on the engine format. Thepercentages indicate the ratio of the rate of change of theN1 and N2 counters to the maximum rate of change. A 70 unitper second rate of change in the counter corresponds to a100% N1 or N2 value. Since the N1 and N2 counters changerather slowly, they are sampled only every .5 seconds. Thisslower rate allows for more accuracy. The sampled valuesminus the last counter values will yield the units changed.The ratio of these differences to the maximum 35 units perhalf-second rate will be the percentage displayed. Finally,the N1 and N2 percentages are filtered, scaled, and storedas integers into the display output buffer.
The left and right engine thrust reverser messages areshown on the upper right side of the engine format. Theywill be displayed when the thrust reversers have been armed.ENGEXCchecks the two discretes which indicate whether theyhave been armed, and sets bits in one of the packed discretewords if they are.
Another discrete word bit is set if the aft flight deckis engaged. This bit serves as a flag to the microprocessorcode to disallow the EPR radials from turning red when theyenter the warning zone while the aft flight deck is engaged.This code was implemented to suppress red warning indica-tions during takeoff.
All of the engine output parameters discussed above areassumed to have valid values. The bits in the packed dis-crete words used by the engine format, indicating that theseparameters are valid, are always set on.
GLOBAL REFERENCES:
VARIABLESAEEF AP WEIGHT* EGTL EGTR EGT CAUTION* EGT LEFT*EGT LIMTT* EGT RIGHT* ENG REVERSERS*ENG VALID i*ENG--VALID 2* ENG VALID 3*--EOPRSL EOPRSREPRI EPR2EPR--CAUTION* EPR--LEFT*--EPRLIMIT EPR RIGHT* FF5LF FF5RFFLAP FLOW LEFT* FLOWRIGHT_ FTFQ FUE_ LEVEL APU*
-200-
FUEL LEVEL LEFT* FUEL LEVEL RIGHT* HBAROLREV N1 CAUTION*N1 LIMIT* N2 LIMIT* NAV64K OIL LEVEL LEFT* OIL LEVEL LIMIT*OIL LEVEL RIG--HT*PRESSUREHIGH; PRESSURELEFT*--PRESSURELOW* PRESSURERIGHT* RREV SYS WARNWORDTATTEMP_LEFT* TEMP_LIMIT* TEMP_RIGHT* TOTAL AIR TEMP* WEIGHT
ARRAYSENG DATA FUQTY OUTDAT*
FUNCTIONS AND SUBROUTINESEPR F1EPR F2
-201-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
EPR F1ENGEXC.FORDSPFSTENGEXCEPR F1 (TAT, HBARO)
PURPOSE:To find the appropriate flight manual maximum cruise
EPR, given the current air temperature and altitude.
DESCRIPTION:This function determines the maximum cruise EPR (engine
pressure ratio) setting from the flight manual. There aretwo EPR values looked up in this function. One EPR value isobtained by using the current air temperature as a referenceinto a table of EPR values that is arranged according to
temperature intervals. A second EPR value is fetched usingaltitude as the reference into a table based on altitude
intervals. The lower of the two values looked up is used as
the maximum cruise EPR setting.
-202-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
EPR F2ENGEXC.FORDSPFSTDSPFSTEPK F2 (TAT, HBARO)
PURPOSE:To find the appropriate flight manual maximum takeoff
EPR, given the current air temperature and altitude.
DESCRIPTION:This function determines the maximum takeoff EPR
(engine pressure ratio) setting from the flight manual.There are two EPR values looked-up in this function. OneEPR value is obtained by using the current air temperatureas a reference into a table of EPR values that is arrangedaccording to temperature intervals. A second EPR value isfetched using altitude as the reference into a table basedon altitude intervals. The lower of the two values lookedup is used as the maximum takeoff EPR setting.
-203-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
FFPRCFFPRC.FORDSPFSTDSPFSTCALL FFPRC
PURPOSE:To calculate fuel consumption, remaining fuel quantity,
and aircraft total weight.
DESCRIPTION:FFPRC requires a manual entry of aircraft gross weight
(GRWGT)to initiate processing. If GRWGTis set to zero,processing is bypassed. Otherwise, GRWGTis compared tothe previous value and if a new entry has been made theninitialization processing takes place. A change in GRWGTprompts a full initialization, which begins by saving thenew gross weight in I_WEIGHT, computing the aircraft emptyweight (E WEIGHT) as GRWGTminus the measured total fuelquantity _TFQ), setting the FUELUP discrete and zeroing thetotal fuel used (TFU). Several variables used in measuring
and filtering the fuel flow are then computed. KDEN and KTF
are computed as the product of the user adjustable nominal
fuel density (FDEN) and the constants KKDEN and KKTF
respectively. KDEN and KTF are used by the FINPT subroutine
of DISFIL to produce the FU vector (Ibs of fuel used in the
last sample period for each engine and the APU) from the
fuel temperature and fuel meter inputs. The fuel flow
filter constant (KT) is computed from the user adjustable
time constant (TAUFF). The fuel quantity filter constant
(TAUFQ) and the ib/sample to ib/hour conversion factor (SF)
are computed from the user selectable sample interval
(MXITER). Finally, the interaction count (ITER) is set to
the negative of MXITER, FTFQ is set to the measured fuel
quantity (TFQ) and DELTA_F (the difference between TFQ and
FTFQ) is set to zero.
Normal processing begins by incrementing ITER. This
counter was initialized to -MXITER, which is the signal
for FINPT to initialize itself. Subsequently, FINPT takes
a set of readings each time ITER becomes zero. FFPRC pro-
cesses these readings when ITER + 1 = I, i.e., later in the
same major frame. Total fuel used (TFU) is then computed as
the integral of the sum of the FU vector. The filtered
total fuel remaining (FTFQ) is then computed in a complemen-
tary filter driven by FU and corrected by TFQ with a 30
second time constant. Aircraft weight is then set to the
sum of E WEIGHT and FTFQ, and FU is rescaled to fuel flow in
ibs/hr for display.
-204-
Finally, the filtered fuel flow quantities for leftand right engines and the APU are computed from FU. WhenITER becomes equal to MXITER, it is reset to zero, whichreinitializes the cycle.
GLOBAL REFERENCES:
VARIABLESFDEN FF5AF* FF5LF* FF5RF* FTFQ FUELUP* GRWGTITER* KDEN*KT KTF* MXITER TAUFF TFQ TFU* WEIGHT*
ARRAYSFU
FUNCTIONSAND SUBROUTINESMTH$EXP
-205-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
FTESTFTEST.FORDSPFSTDSPFSTCALL FTEST
PURPOSE:To simulate some of the engine parameters needed to
drive the engine display format.
DESCRIPTION:Some of the aircraft inputs used by the engine display
software are not provided by the real-time flight simulationin the Experimental Avionics Systems Integration Laboratory(EASILY) Lab. The engine parameters affected by the lack ofthese inputs are: total fuel quantity, airplane weight,left and right engine fuel flows, and left and right engineN1 and N2 percentages. FTEST was created to simulate thesevalues in the EASILY testing environment only. The calcu-lations to simulate the parameters are based on the averageEPR value between the left and right engines, so that theaffected engine values will change along with a change inEPR. However, no attempt has been made to make thesesimulated values accurate, and should not be viewed asthe actual values that would be displayed under the sameconditions in-flight. The purpose is merely to make theengine parameters listed above seem reasonable when testingin the EASILY.
FTEST is called by DSPFST only when the boolean LABFLGhas been set.
GLOBAL REFERENCES:
VARIABLESEPRI EPR2 FF5LF FF5RF* FTFQ GRWGTNILEFT NIRGHT* N2LEFT*N2RGHT* WEIGHT*
-207-
Section 9.0 SYSTEM WARNING DISPLAY SOFTWARE
The data required to drive this format is created by
only one procedure, SYSEXC. A description of this procedureis included on the following page. Refer to Appendix A to
to find the locations in the display output buffer (OUTDAT)
used by this format. The mnemonic "SYS" is used to identifybuffer words used by the system warning format.
PRECEDING PAGE BLANK NOT FILMED
_0_ |HTI[NTIONALLY ""_'_
-208-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
SYSEXC
SYSEXC.FOR
DSPFST
DSPFST
CALL SYSEXC
PURPOSE:
To process data and store in the output buffer the
inputs needed by the System Warning format to display
warning messages, and information on flap setting and gear
position.
DESCRIPTION:
One of the duties of the system warning format is to
display valid system messages. SYSEXC scans a series of
discrete words whose bits correspond individually to a set
of predefined messages available to be displayed. When a
bit has been set, the appropriate text is shown. System
warning messages fall into three categories: warning,
caution, and special. The following table indicates the
available messages for each type.
warning: "RFD DISENGAGED"
caution: "STB OUT OF TRM"
"SPD BRK NO ARM"
"FLAP LIMIT"
"THROTTLE LIMIT"
"SPD BRKS SYNC"
"AILERON LIMIT"
"ELEVATOR LIMIT"
"RUDDER LIMIT"
"SPD BRK ARM"
special: "NAV 2 TUNING"
"DME 2 TUNING"
"COMM TUNING"
Also, SYSEXC checks to see if the flaps are moving by
comparing the filtered actual flap position to the flap
handle position. If the two values vary by a specified
tolerance value, SYSEXC sets the appropriate bit in the
display output buffer to indicate that the flaps are moving.
The tolerance will be either .25 degrees for flap handle
positions below 5, or 15% of the flap handle value for flap
settings 5 or greater. SYSEXC also scales the value of the
flap position to a Standard Angle Format (SAF) and stores
the scaled position in the proper place in the display
output buffer.
-209-
Lastly, SYSEXCperforms some logic to determine whattype of symbology should be shown to describe the positionof each gear (nose gear, right gear, left gear). Differentsymbology is displayed, depending upon which bits are set inthe display output buffer. The following chart describes
which symbology is displayed for the nose gear given the
following combinations of bit settings in the buffer word
OUTDAT(698).
BITS 4 3 2 1 0 SYMBOL
0 0 1 1 0 GREEN 'DN'
0 0 1 0 1 WHITE 'UP'
0 0 0 1 0 RED DOWN ARROW
1 0 0 0 0 YELLOW DOWN ARROW
0 0 0 0 1 RED UP ARROW
0 1 0 0 0 YELLOW UP ARROW
ALL OTHER COMBINATIONS RED 'X'
(Right and left gear symbology is displayed under the same
bit patterns, but a different range of bits: bits 5-9 of
OUTDAT(698) representing the left gear, and bits 10-14
representing the right gear.)
The following combinations of discrete values, repre-
senting the sensor data received from the airplane, yield
the indicated symbols for the nose gear display.
GUPCMD GDNCMD NGRRED NGRDN
gear up gear down nose gear nose
commanded commanded not gearlocked down
SYMBOL
F T F T GREEN 'DN'
T F F F WHITE 'UP'
F T F F RED DOWN ARROW
F T T T RED DOWN ARROW
F T T F YELLOW DOWN ARROW
T F F T RED UP ARROW
T F T T/F YELLOW UP ARROW
ALL OTHER COMBINATIONS RED 'X'
The same symbology would be displayed for right and left
gear with the substitution of the following booleans as thelast two items in the table above:
LEFT - LGRRED, LGRDN
RIGHT - RGRRED, GRGDN
-210-
GLOBAL REFERENCES:
VARIABLESAILCMO ELVCMOFLAP FLPPLC FLPPOS GDNCMDGEARWORDGRPOS*GUPCMDINBD LEFT FLAP* LGRDNLGRREDNAV VLD 2 NGRDNNGRREDOUTBDRCOMTRCTRLD RGRDNRGRREDRIGHT FLAP RNAV2T RUDCMORXPDRTSPBPLC SPDARMSPDNARSTBTRMSYS i* SYS 2* SYS 3*SYS 4* SYS 7* SYS 8* THRPLC -- -- --
-211-
Section i0.0 SPERRYPFD SOFTWARE
The Primary Flight Display designed by Sperry requiresa small amount of processing in the host computer. Onlyone module, PFDEXC, creates data specifically for this for-mat. Appendix A shows the display output buffer locationsdedicated to the Sperry PFD format. The mnemonic "FI" isused to refer to this format. The next page contains adescription of PFDEXC.
-212-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PFDEXCPFDEXC.FORDSPFSTDSPFSTCALL PFDEXC
PURPOSE:To process and store in the NAV background buffer the
parameters required by the Sperry PFD format.
DESCRIPTION:The following aircraft parameters are required by the
Sperry PFD format only. They are scaled and stored asintegers in the displays output buffer (OUTDAT).
Sea level barometric pressure settingAircraft pitch angleRate of change in altitudeVertical guidance deviationHorizontal guidance deviation
This is not a complete set of the parameters referencedhowever. Some aircraft inputs used by the Sperry PFD havealready been made available in the 704 word displays bufferby other formats which share the values.
Certain parameters used are always assumed to havevalid values. The valids always turned on by PFDEXC are:
attitude validaltitude validvertical speed validvertical deviation validlateral deviation valid
These valids correspond to bits set in the Sperry PFDdiscrete word PFD VALID, also sent to the microprocessorvia the output buffer.
PFDEXC does some processing for its airspeed display.If the current airspeed value is valid, bits in PFD VALIDare immediately set on corresponding to the airspeedvalid, and airspeed limit valid.
The airspeed limit value is determined by PFDEXC.Fixed airspeed limits exist in a local data table for flapsettings of 0, i, 2, 5, 10, 15, 25, 30, and 40 - with theexception that the limit value for flaps 0 will be one oftwo values depending on whether the gear is down or up.Using the current flap position, an index into the table isfigured, and interpolation is used, to compute the appro-priate airspeed limit value.
One final bit of processing done for the airspeed dis-play is to set on a valid bit in PFD VALID when an airspeedhas been selected on the pilot's CDU.
-213-
PFDEXC does some processing for the altitude displayas well. If the current radar altitude value is valid, anappropriate bit in the valid word is set on, and the radaraltitude value is scaled and stored in the displays outputbuffer. Also, a valid bit is set on in PFD VALID when analtitude has been selected on the pilot's CDU.
GLOBAL REFERENCES:
VARIABLESALTSEL BARSET BETAH CASV ETAH FLAP FLPPOS GEAR HDCF HRADHRV IASSEL PFD BARO SET* PFD CASLMT* PFD HDOT*PFD HORDEV* PFD HRAD* PFD PITCH* PFD VALID* PFD VER DEV*PITCH SYS 7 .....
-215-
Section 11.0 TAKEOFFPERFORMANCEMONITORINGSYSTEM (TOPMS)
The Takeoff Performance Monitoring System displayformat is used only during the takeoff phase of flight. Adrawing of the format can be found on the following page.The TOPMSformat provides critical takeoff information tothe pilot, and allows the pilot to monitor the performanceof the aircraft during the takeoff roll. It visually showswhere along the runway the airplane should reach the V1(decision speed) and VR (rotate speed) positions. The TOPMSsoftware also performs computations to determine an appro-priate takeoff advisory status, which the pilot may use indetermining whether to complete the takeoff or abort it.The advisory status has four possible states, "must abort","must takeoff", a warning state, and a state indicatingeverything is within normal range.
The TOPMSdisplay has two modes, takeoff and abort.Different amounts of information are provided depending onthe mode - although the runway symbol and identifier, speedvalue, and aircraft symbol will be shown regardless. Notethat the speed value will be airspeed in takeoff mode, andground speed in abort mode. The abort mode display is thesimpler of the two. There are two critical symbols shownduring the abort. One is the symbol indicating where theaircraft will stop along the runway if maximum braking isused (not including reverse thrust). It is comprised ofa circle with a star in the middle. The second criticalsymbol (shaped like a football) represents where the stoppoint will be at the current level of braking.
The takeoff mode display contains a lot more informa-tion than the abort mode. The parameters always displayedin this mode are as follows.
flight manual EPR settingVI, V2, VR speedsaircraft position on runwaywind speed, directiontakeoff advisory statusengine performance barstakeoff roll limit
Under certain conditions the stop point using maximumbraking is shown too. Figures II.I and 11.2 depict thetakeoff and abort modes of the TOPMSdisplay format.
The TOPMSsoftware is divided into two parts, thepretakeoff segment and the real-time segment. The pre-takeoff software generates a takeoff profile based on CDU
entries made by the pilot. The profile will be used to
compare to the actual performance of the airplane during
takeoff. The real-time software computes the actual takeoff
'_ i._ ..:!_. pRECEDING PAGE BLAI'_K NOT FILMED
-216-
performance, and stores the required data into the displays
output buffer that will generate the real-time takeoff (or
abort) display. Both the pretakeoff and real-time software
segments and their associated modules are discussed in
sections Ii.i and 11.2. These sections should be referred
to for a more detailed software description.
-217-
%15
8000 l
m
125 z_ -
127
EPR 1,95
V2 133
Takeoff Performance Monitoring System(takeoff mode)
-figure 11.1-
-219-
I1041
m
0
m
i
i
22
Takeoff Performance Monitoring System(abort mode)
-figure 11.2-
PRPCEDING PAGE BLANK NOT FILMED
t
-221-
Section II.I PRETAKEOFF BACKGROUND SOFTWARE
The pretakeoff calculations for the Takeoff Performance
Monitoring System (TOPMS) are performed to provide a bench-
mark for the TOPMS real-time software. A takeoff profile is
generated using aircraft parameters and the local ambient
conditions. The actual takeoff performance can be compared
to the pretakeoff profile to create advisory information for
the aircraft flight crew.
The TOPMS pretakeoff procedures execute after several
CDU entries have been completed by the flight crew. These
entries are shown below.
AIRFIELD/RUNWAY ROUTE page.
AIRCRAFT WEIGHT PERFORMANCE page.
FLAP SELECTION TAKEOFF page.
TEMPERATURE TAKEOFF page.
AIRCRAFT CG TAKEOFF page
WIND SPEED/DIRECTION TAKEOFF page
RUNWAY FRICTION TAKEOFF page; default to .015
RUNWAY START OFFSET TAKEOFF page; default to 200 feet
RUNWAY LENGTH TAKEOFF page; default to database value
From these entries CDU software computes the stabilizer trim
position, decision speed (Vl), rotate speed (VR), and second
segment climb speed (V2). The CDU values are all sent to
the display MicroVAX computer through the interprocessor I/O
link for use by the TOPMS pretakeoff modules. In addition
the pretakeoff modules use the pressure altitude, obtained
from the aircraft DATAC sensor bus, as a final external
input parameter.
The flag TOPMS is used to control the sequence of
events involved in the pretakeoff calculations. When it is
set to "I" the module PRETKF is called by the background
software executive DSPSLW. When the computations are
complete the flag is set to "2" to indicate that the com-
puted values are ready for the real-time TOPMS software.
The following list describes the parameters that are created
for use by the real-time TOPMS modules.
PRECEDING PAGE BLANK NOT FILMED
-222-
RWYVI Runway distance required to reach Vl.
RWYVR Runway distance required to reach VR.
ROLLIM Runway distance to the takeoff roll limit
COEF() Polynomial coefficients for the takeoff profile
which provides expected acceleration as a
function of true airspeed.
Nine procedures are dedicated to the TOPMS pretakeoff
calculations. The following chart lists the procedure names
along with their source code language and relative size.
Those modules that serve as utility subroutines to another
procedure are shown with their caller. The size provided is
the percentage of total pretakeoff software memory usage,
excluding utility modules from TOPMS.OLB. The following
pages include module descriptions for each of the nine
procedures. The information provided is limited since
much of this software was extracted from portions of the
NASA's Boeing 737 aircraft simulator program. More detailed
information may be obtained from the people responsiblefor maintaining the simulation.
MODULE SOURCE SIZE
ACTRIM FORTRAN 5%
AEROC FORTRAN 8%
ATMOS FORTRAN 1%
ENGINE FORTRAN 9%
LNGFM FORTRAN 9%
POLYFT FORTRAN 7%
SIMEQA
PRETKF FORTRAN 60%
THROTS FORTRAN 2%
-223-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
ACTRIM
ACTRIM.FOR
DSPSLW
PRETKF
CALL ACTRIM(X,Y, ICTRIM, YTOL, IFLAG)
PURPOSE:
To compute initial aircraft trim positions.
DESCRIPTION:
This procedure is used to compute aircraft trim values
for pitch angle, and altitude of the center of gravity above
the runway. Initial pitch and altitude values are passed as
the "X" vector in the calling parameter list. The "Y"
vector contains the landing gear weight distribution param-
eters for the current aircraft center of gravity, weight,
and airplane body orientation. These arrays are used in the
solving of matrix equations to produce static trim values.
ACTRIM proceeds until the columns of the simultaneous
equations matrix are forced close to zero. The tolerance
value YTOL is used to determine when convergence has been
detected. If divergence is detected the module returns with
an error status in IFLAG. ACTRIM may be called iteratively
from PRETKF in an attempt to gain acceptable trim values.
The flag ICTRIM is set to force an initialization pass inACTRIM the first time it is called.
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINES
SIMEQA
-224-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
AEROCAEROC.FORDSPSLWPRETKFCALL AEROC(ALPDEG, FLAG)
PURPOSE:To generate parameters for aeronautical derivatives.
DESCRIPTION:This procedure is called to compute many aircraft aero-
nautical derivatives which are a function of angle of attack,center of gravity, and flap setting. The angle of attackvalue is passed as a calling parameter while the otherinputs are global common variables. When the first passvariable (FLAG) is set, all derivative variables are set tothe appropriate values. On subsequent calls to AEROC many
of the variables do not need to be set again. This is done
because these derivatives are dependent on flap setting and
aircraft CG, which are static for one execution of the
pretakeoff calculations. When FLAG is not set only those
derivatives which are dependent on the current angle of
attack are computed.
GLOBAL REFERENCES:
VARIABLES
CDBAS* CG CLAL* CLALD* CLBAS* CLDE* CLDS* CLGM* CLNZ* CLO*
CLQ* CMAL* CMALD* CMBAS* CMDEM* CMDSM* CMFAC* CMGE* CMGM*
CMNZ* CMO* CMQ* DCDG* DCDGE* DCLG* DCLGE* DCMG* DLCLTR*
FGEL* FKA* GEARF* TOFLPS
FUNCTIONS AND SUBROUTINES
LIB$SIGNAL ONED
-225-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
ATMOSATMOS.FORDSPSLWPRETKFCALL ATMOS
PURPOSE:To compute atmospheric parameters.
DESCRIPTION:This subroutine uses pressure altitude and temperature
to calculate temperature ratio, pressure ratio, speed ofsound, and air density.
INPUTS:PALTSOAT
pressure altitude in feettemperature in degrees Celsius
OUTPUTS:THTAMBDLTAMBARHORTEMP
ambient temperature ratioambient pressure ratiospeed of sound in FT/SEC
density in SLUGS/CU.FT
ambient temperature in degrees Rankine
GLOBAL REFERENCES:
VARIABLES
A* ALT PRE DLTAMB RH0* RTEMP SOAT THTAMB
FUNCTIONS AND SUBROUTINES
MTH$SQRT
-226-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
ENGINEENGTKF.FORDSPSLWPRETKFCALL ENGINE(DTH,THRUST,EPR,SPD)
PURPOSE:To perform engine modeling computations.
DESCRIPTION:This procedure performs computations which model the
dynamics of the JT8D-7 aircraft engine. ENGINE is passedthrottle position and airspeed as calling parameters. Whenthe global simulation time variable "T" is zero all theengine parameters are initialized to their idle values. Theairspeed, throttle position, and ambient atmospheric con-ditions are used to calculate the engine thrust and pressureratio, which are returned to the caller in the parameterlist.
GLOBAL REFERENCES:
VARIABLESA ALT PRE DLTAMBT THTAMB
FUNCTIONS AND SUBROUTINESDZONE OLIMIT ONEDRATE THCORFXLIM
-227-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
LNGFM
LNG2D.FOR
DSPSLW
PRETKF
CALL LNGFM(OPERATE)
PURPOSE:
To compute the landing gear forces and moments.
DESCRIPTION:
This procedure computes landing gear forces and moments
for the left, right, and nose gear struts. The sole input
parameter is used as an initialization flag. All computed
values are returned through global common memory locations.
GLOBAL REFERENCES:
VARIABLES
ALTR CG COSTHE HDOT LGLB* LGMB* LGNB* LGXB* LGYB* LGZB*
MUROL SINTHE SQLMG* SQNG* SQRMG* THEDOT TPALT
FUNCTIONS AND SUBROUTINES
ONED XLIM
-228-
MODULENA/ME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
POLYFTPOLYFT.FORDSPSLWPRETKFCALL POLYFT(X,Y,NPTS,COEF)
PURPOSE:TO perform polynomial curve fitting.
DESCRIPTION:This subroutine performs a polynomial curve fit on
the X-Y data sets which are passed as calling parameters.A polynomial of order "NPOLY" is fitted minimizing thesum of the squared error.
INPUTSX(NPTS)Y(NPTS)NPTSNPOLY
independent variable arraydependent variable arraynumber of sets of data pointsorder of polynomial (included constant)
OUTPUTSCOEF(NPOLY+I) polynomial coefficients
The computed coefficients generate the solution to thefollowing polynomial equation.
Y = COEF(0) + COEF(1) [ X**l + COEF(2) [X**2 + .......... + COEF(NPOLY) [X**NPOLY
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINESSIMEQA
-229-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SIMEQAPOLYFT.FORDSPSLWPOLYFT, ACTRIMCALL SIMEQA(B, N, C)
PURPOSE:To solve a system of linear equations.
DESCRIPTION:This subroutine uses matrix reduction to solve a system
of linear equations. The parameter "N" is the number of rowsin the matrix "B" and the number of elements in the vectorliCit .
GLOBAL REFERENCES:
none
-230-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
PRETKFPRETKF.FORDSPSLWDSPSLWCALL PRETKF
PURPOSE:To perform TOPMSpretakeoff calculations.
DESCRIPTION:This procedure is the main module for the TOPMSpre-
takeoff calculations. It performs internal simulations ofthe takeoff roll using the ambient conditions provided bythe aircraft sensors and the flight crew CDU entries. Twocomplete simulations are made using different coefficientsof runway friction (.04, .005). Each run is a simulated45 seconds of takeoff roll with 900 data samples of airspeedand acceleration saved. At the end of a run the sampleddata is passed to a curve fitting subroutine to produce athird order polynomial which approximates the airspeedversus acceleration profile of the data points. After bothsimulation runs are complete, the flight crew frictionestimate entered on the CDU is used to interpolate a finalset of polynomial coefficients from those created for theupper and lower runway friction values. These values areused to generate the remaining pretakeoff outputs describedin the start of this section.
GLOBAL REFERENCES:
VARIABLESA ALPHA ALT ALTR* ALT PRE ARMSPB*ATOBRK* CD CDBASCG CLCLAL CLALD CLBAS CLDE CLDS CLGMCLNZ CLO CLQ CMAL CMALDCMBASCMDEMCMDSMCMFACCMGECMGMCMNZCMOCMQCOSALPCOSPHI* COSTHEDCDFSP* DCDGDCDGEDCDGSP*DCLFSP* DCLGDCLGEDCLGSP* DCMGDELA* DELE DELR* DLCLTR DTHROT* EPRCFGEL FKA GEARF HDOT* LGMB LGXB LGZB MUBC* MUROL* MURWYORGHDGORGLENPB* PBDOT* PHI PHIDOT* QB QBDOT* RB* RBDOT*RHO ROLARM* ROLLIM* RWYVI RWYVR*SINALP SINPHI* SINTHESOAT SQLMGSQNGSQRMGT THEDOT* THETA THRIDL* THRST*TOFLPS TOSTAB TOWDTOWSTPALT UB UBDOTV1VISTOP VB*VBDOT* VR VWKWB WBDOTWEIGHT WGHTPRE YTOL
ARRAYSALTVEC* COEF* COEFSQBVEC* THVEC* UBVEC* WBVEC*
FUNCTIONS AND SUBROUTINESACTRIM ADBW2AEROCASPDCOATMOSENGINE LIB$ESTABLISHLIB$SIGNAL LNGFMMTH$ASIN MTH$COSMTH$SIN MTH$SQRTMTH$TANONEDPOLYFT RWYPRDSTPDIS THROTSTHSRVOTOP HDL
-231-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
THROTSTHROTS.FORDSPSLWPRETKFCALL THROTS(TEMP,PALT,EPRC,DTHC,DTHI4)
PURPOSE:To find the recommended takeoff EPR and the throttle
setting required to reach that value.
DESCRIPTION:This subroutine picks the EPR value recommended by the
B-737 flight manual for the given ambient temperature andpressure altitude based on the tabulation on page #3 (4B-I)of the flight manual for 737-ILT dated JAN 5/70.
The throttle setting needed to achieve this EPR understatic conditions is then calculated by an iterative processusing a relationship between commanded EPR, throttle settingand engine inlet stagnation temperature. This relationshipwas obtained from the JT8D-7 engine model as developed byDave Williams.
INPUTSTEMPPALT
ambient temperature in degrees Celsiuspressure altitude in feet
OUTPUTSEPRCDTHCDTHI4
EPR to be commandedthrottle setting needed to achieve EPRC (degrees)throttle setting for an EPR=I.4
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINESFINTER
-233-
Section 11.2 TOPMSREAL-TIME SOFTWARE
The TOPMSreal-time software generates the data neededto drive the real-time takeoff display. This software com-putes the actual performance of the airplane during takeoff,which will be compared to the takeoff profile generatedduring the pretakeoff segment of the TOPMSsoftware. Thereal-time software handles both the takeoff and abort modedisplays.
Three procedures are dedicated to the TOPMSreal-timecalculations. The following chart lists the procedure namesalong with their source code language and relative size.Those modules that serve as utility subroutines to anotherprocedure are shown with their caller. The size provided isthe percentage of total pretakeoff software memory usage, ex-cluding utility modules from TOPMS.OLB. The following pagesinclude module descriptions for each of the three procedures.
MODULE SOURCE SIZE
TOPEXC FORTRAN 87%APLANE
FILL FORTRAN 13%
The real-time computations start only after the pretakeoffsoftware has completed successfully. The global variable"TOPMS" is used as an index to coordinate processing. Whenthe index contains a value of 2 or 3 then real-time calcula-tions are computed. TOPEXC is the TOPMSreal-time executive,and is called twenty times per second. The subroutine FILLis called at the end of each pass of TOPEXC. FILL scales,converts, packs, and stores the TOPMSdata required by thedisplay format into the output buffer - including parameterscomputed by the pretakeoff segment.
Another global variable "ENABLE" is important to thereal-time software. Bit settings within the lower byte ofthis word control some of the software processing in TOPEXC.A detailed description of the individual bits and theirsignificance can be found at the end of section Ii.
To produce the real-time TOPMS display certain values
must be constantly updated. A list of those parameters areas follows.
airplane position on runway
measured airspeed in takeoff mode
distance to Vl in feet
distance to VR in feet
engine performance indicators
PRECEDING PAGE 13LA,_K NOT FJLr._ED
-234-
takeoff advisory status
mode switch (takeoff to abort)
stop distance w/current braking
stop distance w/max braking
ground speed in abort mode
Note that the current EPR settings are required by the
TOPMS format also, but since they are stored in the output
buffer by the engine format executive ENGEXC, TOPEXC does
not need to process and store those values too.
-235-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
FILLFILL.FORDSPFSTTOPEXCCALL FILL
PURPOSE:TO store in the displays output buffer the data
required by the TOPMS format.
DESCRIPTION:
This routine performs the scaling and storing of TOPMS
related data into the displays buffer OUTDAT. It also sets
flags as necessary to help regulate the proper execution of
the TOPMS software, which includes signaling the completionof a run.
The global variable "TOPMS" is used as an index to
indicate what phase of TOPMS processing is currently being
performed. The TOPMS format will continue to be displayed
while the real-time TOPMS software in TOPEXC is being
processed (index 2 or 3). However, in all other cases -
TOPMS format deselected (index 0), pre-takeoff calculations
underway (index i), and end of run flagged (index 4) - the
uppermost bit in the displays status word DISPST will be
cleared. This word sent back to the FM/FC computer will
cause the appropriate flags to be set which will turn off
the TOPMS format.
One particular buffer word (OUTDAT index 619) is used
to pack TOPMS related flags and indices. Flags are repre-
sented as certain bits within the word. Individual bits
will be set on if any of the following conditions exist.
bit
0
1
2
5
6
7
condition
no pretakeoff computation errors
left engine not failed
right engine not failed
takeoff mode (off is abort mode)
left or right bleeds are off
TOPMS,actual flap setting not same
Bits 3-4 of the packed word contain a two bit index (values
of 0 to 3) for the takeoff advisory status. The advisory
status determines what type of symbol will be displayed at
the end of the runway (i.e. green "must go" bar, yellow
caution triangle, the red "must stop" sign, or no symbol fornormal conditions).
Some of the TOPMS parameters are updated and stored in
the output buffer every frame, while others only need to be
stored one time per run. Values constantly updated are:
-236-
airplane position along runwaymin stop distance w/max brakingstop distance w/current brakingmeasured airspeed in takeoff modeground speed in abort modedistance to VR in ft ... (as long as VRdistance to V1 in ft ... not exceeded)
TOPMSvalues that are computed before the run starts andnever change for the course of the run, need to be stored inthe output buffer only once. These values include:
wind speedwind direction - runway headingrunway lengthtarget EPR for takeoff rollV2 speedroll limit line positionVR position on runwayVR speedVl speedrunway number
FILL updates the TOPMSphase index variable "TOPMS", whenit begins storing the values only packed once per run. Thisindicates the end of the first pass initialization process.The routine TOPEXCwill use this flag to bypass its firstpass calculations from thereon.
GLOBAL REFERENCES:
VARIABLESCASMDISPST* DISTP EPRC FLAP GSFPS LENGFL ORGHDGORGLENRENGFLROLLIM RWY2VI RWY2VRRWYID RWYVRSTATUS STOPDSTOPETKOFF TOFLPS TOINDX TOPMS* TOPOSTOPST TOWDTOWSV1 V2 VRBLEEDL BLEEDR
ARRAYSOUTDAT*
FUNCTIONSAND SUBROUTINESANGL
-237-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
TOPEXCTOPEXC.FORDSPFSTDSPFSTCALL TOPEXC
PURPOSE:Serves as the executive for the real-time portion of
the TOPMS experiment.
DESCRIPTION:
TOPEXC is the real-time executive for the TOPMS soft-
ware, and most of the actual real-time processing takes
place in this subroutine. The purpose of TOPEXC is to check
the airplane's progress during the takeoff roll. It con-
stantly refigures aircraft position in terms of the runway
already used up, and what is additionally needed to achieve
rotation speed. This routine monitors engine health,
acceleration performance, computes distances in feet re-
quired to reach V1 (decision speed) and VR (rotate speed)
in feet, calculates the distances required to stop, and
outputs a takeoff advisory status.
TOPEXC is called by DSPFST twenty times per second if
the TOPMS format is on. However, no real-time processing
takes place within TOPEXC until the pretakeoff software has
completed successfully. The first pass through the sub-
routine body performs initializations for the takeoff run.
When the software sequence variable "TOPMS" has a value of
three, then the continuous real-time segment is underway,
and continues for the course of the run. Among the things
done during the initialization process is to call APLANE
to make sure the flaps are set at either I, 5, or 15. If
they are not, the TOPMS sequence index is set to "end of
run" (TOPMS = 4). Another situation that will cause the run
to terminate, and is checked for at the beginning of each
TOPEXC pass, is if the difference between the runway heading
and aircraft true heading is more than 25 degrees.
Certain bits within the global variable "ENABLE" affect
TOPEXC's processing. ENABLE provides the capability to
select among a small set of options that allow some control
over how the run will be conducted. Bits can be set in
ENABLE, using the VIEW utility, prior to the .start of a run.
If set, the uppermost bit will cause the TOPMS internal
simulation software to activate, and the body of TOPEXC to
be bypassed. Bit 3 determines whether a pitch attitude
correction is computed into the along track acceleration.
Bit i controls the internal wind update. Bit 0 enabled will
will cause a ground speed bias to be figured. Bit 2 selects
the failure count for a performance failure to be either 5
consecutive frames or 8. Bits 4 and 5 determine the early
on "must go" advisory distance. Figure 11.3, at the end of
section Ii, presents a graphic representation of all the
ENABLE bit settings.
-238-
TOPEXCactivates and uses two time counters duringits processing. These counters are referenced throughoutthe subroutine to determine when specific processing shouldtake place. One is the real-time TOPMSsoftware clock(RTIME) which is started when the EPR's are advanced beyond1.4 and the ground speed is greater than 5 ft/sec. Theother clock, XSTIME, is activated at the actual start of therun which will be when the following conditions are met:the EPR's are greater than 1.4, throttles have been steadyfor at least 3 seconds, and the real-time clock XSTIME hashas been going for at least i0 seconds. Once XSTIME hasbegun counting, the takeoff run is underway.
During the course of the run, the distance travelled,the distances to reach Vl and VR, and also the amount ofrunway required to stop, are constantly recomputed. Twoone-time updates that occur during the run affect the VI, VR,
and stop distance calculations. Approximately two seconds
after the run starts the runway friction coefficient (XMU)
and the scheduled performance basis (COEF) are re-updated
based on the current takeoff run conditions. They are
initially computed during the pretakeoff segment. The other
update that occurs is a wind update. It takes place when
the airspeed exceeds 68 knots. The wind model can be dis-
abled using the ENABLE word.
Two important tasks of the real-time software are to
monitor engine health and acceleration performance. The
TOPMS display format is designed to signal engine and per-
formance failures. To determine if a failure has occurred,
actual engine parameters are compared to predicted ones.
TOPEXC computes predicted EPR and acceleration values. If
the difference between the actual and predicted values
differ by more than their allowable limit a specified number
of consecutive iterations, then an engine failure (EPK's), or
a performance failure (acceleration) is flagged.
There are two stop distances computed by TOPEXC. _One
is the distance required to stop using the present level of
deceleration (STOPE), and the other is the stop distance
using maximum braking (STOPD). The former is always figured
regardless of mode, while the latter is calculated only in
abort mode. Abort mode is entered when the throttles are
pulled back below 1.4 after the run has already begun.
One other responsiblity of this subroutine is to output
a takeoff advisory, which is used as an indication of the
takeoff situation. The advisory information is displayed on
the TOPMS format at the end of the runway, and comes in one
of four forms: a red stop sign warning, a yellow caution
triangle (early on "must go" condition), a green "must go"
bar, or no symbol at all for normal conditions. The follow-
ing chart describes the situations that will cause each of
the advisory indicators to be displayed.
-239-
Red Stop Sign
(i) VR point beyond roll limit line(2) left and right engine failures(3) one engine failure +
airspeed below Vl(4) acceleration performance failure
Yellow Early-On "Must Go" Triangle
(i) one engine failure +airspeed beyond Vl +not enough rwy to stop
Green "Must Go" Bar
(I)
(2)
one engine failure +
airspeed beyond Vl +
not enough rwy to stop
not enough rwy to stop
No Symbol
(i) VR point before roll limit line +
no performance failures +
no engine failures +
enough rwy to stop
The last thing TOPEXC does before exiting is to call
the subroutine FILL, which will pack the TOPMS data into the
output buffer for shipment to the display microprocessors.
GLOBAL REFERENCES:
VARIABLES
A ACCLF BDXACC CAS CASM CD CL DISTP DLTAMB DTHROT* ENABLE
EPRI EPR2 EPRPL EPRPR GSFPS GSPD GSPDI HDGTRU LENGFL
MAGVAR MURWY ORGHDG ORGLEN PITCH RENGFL RHO ROLLIM RWY2VI*
RWY2VR RWYVl RWYVR SOAT STATUS* STOPD STOPE* THROTL THROTR
THRST TKOFF TOPMS* TOPOS TOPST TRKACC V1VR VWK WEIGHT XMU
ARRAYS
COEF* COEFS
FUNCTIONS AND SUBROUTINES
ANGL APLANE ASPDCO EPRF FILL FINTER MTH$COS MTH$SIN RWYPRD
SIMTOP STPDIS THCORF
-240-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
APLANETOPEXC.FORDSPFSTTOPEXCCALL APLANE
PURPOSE:TO determine the coefficients of lift and drag
associated with a given flap setting.
DESCRIPTION:APLANE is called during the first pass initialization
phase of TOPEXC, provided that there were no pretakeoffcomputation errors. APLANE is responsible for figuring theappropriate coefficients of lift and drag for a particularflap setting. There are only three valid flap settings fora takeoff run: one, five, and fifteen. Any other flapsetting will cause APLANE to set the software index flag"TOPMS" to four, which signals end of run. To determinethe lift and drag coefficients the appropriate stabilizersetting must be identified first. Using the center ofgravity position, table look-ups and interpolation are per-formed to figure the stabilizer setting.
Besides the coefficients, the rate of change of lift
and drag due to the front spoilers and ground spoilers is
also identified. These will be fixed values based on which
of the three settings the flaps are positioned at.
GLOBAL REFERENCES:
VARIABLES
CD* CG CL* DCDFSP* DCDGSP* DCLFSP* DCLGSP* TOFLPS TOPMS*
-241-
Section 11.3 TOPMSOBJECT LIBRARY (TOPMS.OLB)
Their are seventeen subroutines on the TOPMSutilitylibrary TOPMS.OLB. Three of them are subroutines used onlyby other utility library modules (STPREF FNSERV SEARCH).
The following pages give a brief summary of the modules on
this library.
-242-
MODULENAME:FILE NAME:CALLING SEQUENCE:
ADBW2PROCS.FORCALL ADBW2(STATEVECTOR)
PURPOSE:To perform state vector integration.
DESCRIPTION:This utility performs integration to produce the
current value of a simulated signal. A three element inputarray is passed as the sole calling parameter. The arrayelements are used as follows.
STATE VECTOR(I): This element contains the last value ofthe signal. The new value computed from integration isreturned in this element.
STATE VECTOR(2) : This element contains the current rate thatthe signal changes in one second.
STATE VECTOR(3) : This element contains the previous framesvalue for STATE VECTOR(2).
The integration performed by this procedure is done 20 timesper second of simulated time. The equation used to computethe new signal is given below.
SIGNAL = LAST SIGNAL + .05 * (1.5 * KATE - 0.5 LAST KATE)
Note that ADBW2 automatically places the current rate into
the last rate element before returning to the caller.
GLOBAL REFERENCES:
none
-243-
MODULENAME:FILE NAME:CALLING SEQUENCE:
ASPDCOPROCS.FORCALL ASPDCO(SPEED, TYPE)
PURPOSE:To convert between airspeed types.
DESCRIPTION:This procedure is passed an airspeed (knots) and a
conversion type code. A type code of "0" requests con-version from true airspeed to calibrated airspeed and atype of "i" is passed for the conversion back.
GLOBAL REFERENCES:
VARIABLESDLTAMB THTAMB
FUNCTIONS AND SUBROUTINESMTH$SIGN MTH$SQRT
-244-
MODULENAME:FILE NAME:CALLING SEQUENCE:
DZONEPROCS.FORVALUE = DZONE(SIG, LOW, HIGH)
PURPOSE:
To perform a dead-zone adjustment.
DESCRIPTION:
This utility function is called to force a dead-zone
about zero on an input signal. The first calling parameter
is the signal value. The remaining parameters are the dead-
zone boundaries. The resulting value is the amount the
input signal is outside of the dead-zone. If the input is
within the dead-zone a zero value is returned.
GLOBAL REFERENCES:
none
-245-
MODULENAME:FILE NAME:CALLING SEQUENCE:
EPRFPROCS.FOREPR = EPRF(THROTTLE, TEMPERATURE)
PURPOSE:To compute EPR values.
DESCRIPTION:This utility function is called to compute an estimated
engine pressure ratio (EPR) from the throttle setting and
the engine inlet stagnation temperature.
GLOBAL REFERENCES:
none
-246-
MODULENAME:FILE NAME:CALLING SEQUENCE:
FINTERPROCS.FORCALL FINTER(EPR, OAT, THROTTLE)
PURPOSE:TO compute throttle setting for desired EPR.
DESCRIPTION:This utility is passed a desired engine pressure ratio
(EPR) and the outside air temperature (Deg C) to computethe throttle setting required. An iterative algorithmusing the function EPRF is implemented.
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINESEPRF LIB$SIGNAL
-247-
MODULENAME:FILE NAME:CALLING SEQUENCE:
FNSERVSTPDIS.FORPOS = FNSERV(RATE,COMMAND,ACTUAL,LIMIT)
PURPOSE:TO model servo response for control inputs.
DESCRIPTION:This subroutine models servo response to control
commands. The first calling parameter is the exponentialservo response constant used in filtering equations. Thecommanded value is passed along with the current actualposition. The last parameter is a rate limit which is themaximum amount the new position may differ from the last.
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINESMTH$SIGN
I
-248-
MODULE NAME:
FILE NAME:
CALLING SEQUENCE:
OLIMIT
PROCS.FOR
VALUE = OLIMIT(VALUE, LOW, HIGH)
PURPOSE:
To perform value limiting.
DESCRIPTION:
This utility function limits an input value to the
supplied boundary values. The resulting number will always
be within the range LOW - HIGH, not including the boundary
values. A tolerance of 1.0E-9 from the supplied range is
always enforced.
GLOBAL REFEKENCES:
none
-249-
MODULENAME:FILE NAME:CALLING SEQUENCE:
ONEDPROCS.FORVALUE = ONED(X, X_TABLE, INT_TABLE)
PURPOSE:
To perform one dimensional interpolation.
DESCRIPTION:
This utility function is passed a sample value "X" and
a table of possible values for the sampled value "X TABLE".
The interval containing X in X table is located and--used
to compute the interpolation value for the parallel interval
in the interpolation table "INT TABLE".
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINES
SEARCH
-250-
MODULENAME:FILE NAME:CALLING SEQUENCE:
RATEPROCS.FORVALUE = RATE(NEW, OLD, HIGH, LOW)
PURPOSE:
TO perform rate limiting.
DESCRIPTION:
This utility procedure returns the NEW value from the
parameter list unless the change from the previous value
exceeds the rate limits supplied. Note that the rate limits
are in UNITS/SECOND, but the utility assumes the time
differential between the sampled OLD and NEW is .05 seconds.
Note that the global time variable "T" from the pretakeoff
simulation is checked for initialization time (0.0). When
the simulation time has not started the NEW values is always
returned without rate limiting.
GLOBAL REFERENCES:
VARIABLES
T
FUNCTIONS AND SUBROUTINES
XLIM
-251-
MODULENAME:FILE NAME:CALLING SEQUENCE:-
RWYPRDPROCS.FORDISTANCE = RWYPRD(V START,V FINAL,V WIND)
PURPOSE:
To compute runway distances covered.
DESCRIPTION:
This utility function returns the predicted runway
distance traveled while accelerating between two airspeeds.
Both airspeeds (true/knots) are supplied in the calling
parameters along with the "along runway" component of the
wind speed (knots).The total distance traveled is found by a ten iteration
summation of distances covered in acceleration steps. The
pretakeoff acceleration versus airspeed polynomial is used
to predict the acceleration at each step.
GLOBAL REFERENCES:
ARRAYS
COEF
-252-
MODULENAME: SEARCHFILE NAME: PROCS.FORCALLING SEQUENCE: INDEX = SEARCH(VALUE,TABLE)
PURPOSE:TO perform table searching for interpolation modules.
DESCRIPTION:This utility function is called by the interpolation
utilities ONEDand TWODto locate the interval within atable where a supplied value falls. Note that since notable length is passed, the last interval of the table mustbe large enough to contain any possible search key value.
GLOBAL REFERENCES:none
-253-
MODULENAME:FILE NAME:CALLING SEQUENCE:
STPDISSTPDIS.FORDIST = STPDIS (V_0,MU, WEIGHT,V_WIND,TK_OFF)
PURPOSE:To compute runway stopping distances.
DESCRIPTION:This function computes the distance required to stop the
aircraft. This is done by iteratively simulating the abortprocess with a fixed time step (.25 seconds). The inputsare described below.
CALLING PARAMETERSV 0 current true airspeed (FT/SEC)MU rolling coefficient of frictionWEIGHT aircraft weight (POUNDS)V WIND wind speed (FT/SEC)TK OFF takeoff / abort mode flag
GLOBAL INPUTS
CL
CD
DCLFSP
DCDFSP
DCLGSP
DCDGSP
RHO
THRIDL
DTHROT
coefficient of lift
coefficient of drag
change in CL due to forward spoilers
change in CD due to forward spoilers
change in CL due to ground spoilers
change in CD due to ground spoilers
air density (SLUGS/CU FT)
idle thrust (POUNDS)
current throttle position (DEGREES)
The simulation performed models the forces involved
in stopping the aircraft. Performance of the aircraft is
modeled for .25 second intervals until the initial speed has
been driven to zero. The aircraft deceleration is computed
from thrust, lift, drag, weight, and runway friction.
Thrust and drag values are computed from the modeling of
reaction time in retarding the throttles and deploying the
spoilers. I
GLOBAL REFERENCES:
VARIABLES
CD CL DCDFSP DCDGSP DCLFSP DCLGSP DTHROT FSPREF GSPREF RHO
THRIDL THRST TMREF
FUNCTIONS AND SUBROUTINES
FNSERV STPREF
-254 -
MODULE NAME:
FILE NAME:
CALLING SEQUENCE:
STPREF
STPDIS.FOR
CALL STPREF(TK OFF)
PURPOSE:
To model throttle and spoiler usage in stopping.
DESCRIPTION:
This procedure is called solely by the utility STPDIS.
It computes the initial positions of throttles, forward
spoilers, and ground spoilers. When in takeoff mode, TK OFF
equal TRUE, the spoilers are assumed retracted and the --
throttles are set to takeoff position. Once a takeoff abort
has started however the entire response time involved is
reduced because these actions start when the abort is
initiated. After a certain amount of time into the abort
phase the throttles and spoilers will be considered com-
pletely in their abort positions.
The reference values for the positions are returned to
STPDIS through the global variables FSPREF, GSPREF, andTMREF.
GLOBAL REFERENCES:
VARIABLES
FSPREF* GSPREF* TMREF*
FUNCTIONS AND SUBROUTINES
FNSERV
-255-
MODULENAME:FILE NAME:CALLING SEQUENCE:
THCORFPROCS.FORTHRUST= THCORF(MACH,EPR)
PURPOSE:TO calculate engine thrust.
DESCRIPTION:This utility function is called to calculate sea-level
engine thrust from mach number and engine pressure ratio.For current pressure altitude adjustment the returned valuemust be multiplied by DLTAMB, which is a global variablecomputed by ATMOS.
GLOBAL REFERENCES:
FUNCTIONSAND SUBROUTINESXLIM
-256-
MODULENAME:FILE NAME:CALLING SEQUENCE:
THSRVOPROCS.FORCALL THSRVO(COMMAND,POSITION)
PURPOSE:TO compute the aft flight deck throttle servo response.
DESCRIPTION:This utility procedure is called to compute the aft
flight deck throttle servo position. The calling parametersare the desired and current throttle positions respectively.The actual position of the servo is returned through thesecond parameter. The effect of this module is to lag theresponse to the command by filtering the differentialbetween commanded and actual positions. The total amountthe servo may respond in one frame is also rate limited.
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINESMTH$SIGN
-257-
MODULENAME:FILE NAME:CALLING SEQUENCE:
TWODPROCS.FORVALUE = TWOD(X, XST,Y, YST,NX, FST)
PURPOSE:
To perform two dimensional interpolation.
DESCRIPTION:
This utility function is used to interpolate table
values dependent on two input values. This can be thought
of as identifying the proper position between four points of
a grid and interpolating into a corresponding value grid.
The first pair of calling parameters is the first
dependent variable and its corresponding table of possible
values. The next pair are used likewise for the second
dependent variable. The two dimensional table of values is
passed as the last calling parameter. Note that the number
of rows "NX" in the two dimensional value matrix is passed
for Fortran's addressing requirements.
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINES
SEARCH
-258 -
MODULENAME:FILE NAME:CALLING SEQUENCE:
XLIMPROCS.FORVALUE = XLIM(VALUE, LOW,HIGH)
PURPOSE:To perform range limiting.
DESCRIPTION:This utility function is called to limit an input value
to a range of specified values. The upper and lower bound-aries are passed as calling parameters.
GLOBAL REFERENCES:none
-259-
Section 11.4 TOPMSSIMULATION
The TOPMSdisplay format may be driven for the purpose
of demonstration by an internal simulation. The global
variable ENABLE is manually modified using the VIEW utility
to select the simulation. Note that the standard pilot CDU
entries into the flight management computer are made as
usual.
The high order four bits of ENABLE are used for the
TOPMS simulation. Refer to figure 11.3 at the end of
section ii for the definition of the TOPMS ENABLE bits.
The following page contains a module description for
the single routine responsible for creating the TOPMS
simulation.
-260-
MODULENAME:FILE NAME:PROCESS:CALLED BY:CALLING SEQUENCE:
SIMTOPTOPEXC.FORDSPFSTTOPEXCCALL SIMTOP(PERFLG)
PURPOSE:To simulate TOPMSvariables for demonstration.
DESCRIPTION:This procedure is called by TOPEXCwhen the simulation
selection bit in the ENABLE word is set. It is called justbefore TOPMSprocessing begins to overwrite external inputvariables which are used by TOPEXC. The TOPMSperformancefailure flag is passed to SIMTOP to assist in determiningengine failure situations.
GLOBAL REFERENCES:
VARIABLESBDXACCBLEEDL* BLEEDR* CAS DTHROTENABLE EPRI* EPR2* EPRCFLAP* GSFPS* HDGTRU*MAGVARORGHDGPITCH* THROTL* THROTR*TOFLPS TOPMS* V1VR VWK
ARRAYSCOEF
FUNCTIONSAND SUBROUTINESASPDCO
"ENABLE" WORD (TOPMS)
-261-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Brr(s)
0
1
2
3
4-5
6-7
12-15
USAGE
Set to sample stationary ground speed from IRS to create a ground speed bias
term.
Set to disable the TOPMS internal wind update.
Used to determine the consecutive failure count needed to flag a performance
error. When set the count is 8 frames, otherwise 5 frames. Note when the
count is set to 8, performance failure checking will also occur after the aircraft
reaches rotate speed (VR).
Set to remove pitch attitude correction to body mounted acceleration (X-axis)
in the computation of along runway acceleration.
Two-bit value selects overlap distance for "early on" of must-go advisory.O0 _ 0 feet Ol ---,500 feet I0 --_ I000 feetII _ 1500 feet
Throttle position override bits.
O1 --_ copy right into left 10 _ copy left into right
TOPMS internal simulation bits.
15: enable simulation
12: freeze simulation
13-14:00 _ standardrun 01 --_ IXXn• performance
10 --_ engine out at 100kt 11 --_ engine out at V1
-figure 11.3-
-263-
Appendix A I/O BUFFER USAGE
Display data is sent to the microprocessor system in a
704 word contiguous block. Except for the Navigation dis-
play format's background buffer (first 400 words), specific
locations within the data block have assigned contents. The
following pages contain the information on the allocation of
the data buffer. The first chart shows a composite usage
layout for all six display formats. The ranges of memory
used by the various formats is shown by assigning the byte
offset values to ID mnemonics (NAV: Navigation Display;
PFD: Primary Flight Display; ENG: Engine Display; SYS:
System warning display; FI: Sperry Primary Display TOP:
TOPMS display). The remaing pages have charts for each
individual format, breaking down the I/O memory usage by
specific variables. Note that the memory allocations for
NAV and TOP overlay each other. This is because these
display formats are mutually exclusive. The same micro-
processor contains both formats, with only one active at
a time.The offset and size values in the charts are in terms of
bytes. The index column contains the index into a word array
used by the host computer. When a "+" is shown by the index
the data actually resides on an odd byte boundary.
Following the I/O layouts is a detailed description of
the various packed words contained in the charts.
PRECEDING PAGE I_LANK NOT FILMED
-264-
MEMORY USAGE FOR ALL FORMATS
OFFSET SIZE INDEX ID
0 - 801 802 1
802 - 1005 204 402
1006 - 1007 2 504
1008 - 1079 72 505
1080 - 1081 2 541
1082 - 1085 4 542
1086 - 1089 4 544
1090 - 1091 2 546
1092 - 1097 6 547
1098 - 1099 2 550
ii00 - 1103 4 551
1104 - 1107 4 553
1108 - 1169 62 555
1170 - 1179 i0 586
1180 - 1181 2 591
1182 - 1187 6 592
1188 - 1189 2 595
1190 - 1193 4 596
1194 - 1195 2 598
1196 - 1201 6 599
1202 - 1203 2 602
1204 - 1207 4 603
1208 - 1241 34 605
1242 - 1247 6 622
1248 - 1255 8 625
1256 - 1263 8 629
1264 - 1267 4 633
1268 - 1271 4 635
1272 - 1275 4 637
1276 - 1343 68 639
1344 - 1345 2 673
1346 - 1347 2 674
1348 - 1351 4 675
1352 - 1355 4 677
1356 - 1357 2 679
1358 - 1359 2 680
1360 - 1361 2 681
1362 - 1363 2 682
1364 - 1365 2 683
1366 - 1369 4 684
1370 - 1373 4 686
1374 - 1375 2 688
1376 - 1377 2 689
1378 - 1379 2 690
1380 - 1381 2 691
NAV
ENG
F1
F1
PFD F1
F1
SYS
ENG
PFD NAY
NAV
PFD NAV
NAV
PFD NAV
NAV
PFD NAV
NAV
NAV TOP
NAY
PFD
PFD F1
PFD
PFD NAY
PFD
PFD NAV
PFD
NAV SYS
PFD F1
PFD NAV SYS F1
PFD NAV
PFD NAV SYS F1
TOP ENG SYS
SYS F1
PFD F1
PFD NAV TOP ENG SYS F1
PFD F1
-265-
1382 - 1383
1384 - 13951396 - 1401
1402 - 1403
1404 - 1405
1406 - 1407
2
12
62
2
2
692
693
699
702
703
704
NAV TOP
SYS
ENG SYS
ENG
NAV SYS F1
NAV SYS
-266-
MEMORY ALLOCATION FOR PFD
OFFSET SIZE INDEX VARIABLE UNITS
1090 - 1091 2
1180 - 1181 2
1188 - 1189 2
1194 - 1195 2
1202 - 1203 2
1256 - 1257 2
1258 - 1259 2
1260 - 1261 2
1262 - 1263 2
1264 - 1265 2
1266 - 1267 2
1268 - 1269 2
1270 - 1271 2
1272 - 1273 2
1274 - 1275 2
1276 - 1277 2
1278 - 1279 2
1280 - 1281 2
1282 - 1283 2
1284 - 1285 2
1286 - 1287 2
1288 - 1289 2
1290 - 1291 2
1292 - 1293 2
1294 - 1295 2
1296 - 1297 2
1298 - 1299 2
1300 - 1301 2
1302 - 1303 2
1304 - 1305 2
1306 - 1307 2
1308 - 1309 2
1310 - 1311 2
1312 - 1313 2
1314 - 1315 2
1316 - 1317 2
1318 - 1319 2
1320 - 1321 2
1322 - 1323 2
1324 - 1325 2
1326 - 1327 2
1328 - 1329 2
1330 - 1331 2
1332 - 1333 2
1334 - 1339 6
546 RADAR ALT
591 TRK DIAL
595 TRU HDG
598 TRU TRK
602 MAG TRK
629 ACC SEGMENT
630 STANDOFF
631 AIRCRAFT X
632 AIRCRAFT Y
633 ACT CAS
634 CAS REFm
635 DEC HT
636 FPA DIAL
637 VRT REF
638 GS REF
639 HOR TICK CTR
640 HOR X
641 MACH
642 PITCH Y
643 LOC X
644 RWY X1
645 RWY Y1
646 RWY X2
647 RWY Y2
648 RWY X3
649 RWY Y3
650 RWY X4
651 RWY Y4
652 RWY X5
653 RWY Y5
654 RWY X6
655 RWY Y6
656 RWY X7
657 RWY Y7
658 RWY X8
659 RWY Y8
660 RWY SCALE
661 PTH TRK
662 FLARE
663 STAR X
664 STAR Y
665 STAR--ZOOM
666 FPA REF
667 TRACK BUG X
668 TO WPT
FEET * 6.5536
DEG * 182.0444
DEG * 182.0444
DEG * 182.0444
DEG * 182.0444
INCHES * I000
INCHES * I000
INCHES * 1000
INCHES * I000
KNOTS * 64
KNOTS * 64
FEET
DEG * i0
FEET
FEET
INCHES * i000
INCHES * 1000
RATIO * I000
INCHES * i000
INCHES * 1000
INCHES * I000
INCHES * I000
INCHES * i000
INCHES * i000
INCHES * 1000
INCHES * I000
INCHES * 1000
INCHES * I000
INCHES * 1000
INCHES * I000
INCHES * I000
INCHES * 1000
INCHES * 1000
INCHES * I000
INCHES * 1000
INCHES * 1000
(0-I) * 16384
DEG * 182.0444
INCHES * 1000
INCHES * i000
INCHES * 1000
(1-20) * 1024
INCHES * i000
INCHES * 1000
ASCIC
-267-
1340 - 13411342 - 13431344 - 13451348 - 13491350 - 13511358 - 13591360 - 13611362 - 13631364 - 13651376 - 13771378 - 13791380 - 1381
222222222222
671672673675676680681682683689690691
NIBBLES 1NIBBLES 2NIBBLES 3DISCRETESSKY PTRACT ROLLACT ALTHDOTALT REFFLAP UPHOSTCNTBARO SET
PACKEDWORDPACKEDWORDPACKEDWORDPACKEDWORDDEG * 182.0444DEG * 182.0444
FEET
INCHES * i000
FEET
KNOTS * 65.536
SECONDS * 20
INCHES * I00
-268-
MEMORYALLOCATION FOR NAV
OFFSET SIZE INDEX VARIABLE UNITS
0 - 799 800 1 BCKGNDBUF800 - 801 2 401 LINK CMD1180 - 1181 2 591 SEL TRK1182 - 1183 2 592 ALT RANGE1184 - 1185 2 593 XTK GS RATIO1186 - 1187 2 594 AC NORIq1188 - 1189 2 595 TRU HDG1190 - 1191 2 596 WIND SPD1192 - 1193 2 597 WIND DIR1194 - 1195 2 598 TRU TRK1196 - 1197 2 599 MAP WORD1198 - 1199 2 600 MLS--X1200 - 1201 2 601 MLS Y1202 - 1203 2 602 MAGTRK1204 - 1205 2 603 BOX--X1206 - 1207 2 604 BOX--Y1208 - 1209 2 605 BOX HDG1210 - 1227 18 606 BUB--COORDS1228 - 1229 2 615 TANG TIMEI1230 - 1231 2 616 OFF VECTOR1232 - 1239 8 617 AP E--AST1240 - 1247 8 621 AP--NORTH1272 - 1273 2 637 VRT REF1274 - 1275 2 638 GS REF1344 - 1345 2 673 NIBBLE31356 - 1357 2 679 GS FPS1360 - 1361 2 681 ALT ACTUAL1362 - 1363 2 682 HDOT SEGMENT1364 - 1365 2 683 REF ALT VALUE1378 - 1379 2 690 HOST CNT1382 - 1383 2 692 FMT YD
1404 - 1405 2 703 DISC WORD11
1406 - 1407 2 704 DISC--WORDI2
BACKGROUND DATA
reserved
DEG * 182.0444
NAUT. MILES * 128
(I/SEC) * 65536
(FT/SEC/SEC) * 512
DEG * 182.0444
KNOTS
DEG * 182.0444
DEG * 182.0444
PACKED WORD
NAUT. MILES * 2048
NAUT. MILES * 2048
DEG * 182.0444
FEET / 32
FEET / 32
DEG * 182.0444
3-(X,Y, HDG)
SEC * 256
NAUT. MILES * 128
4-(INCHES * i000)
4-(INCHES * i000)FEET
FEET
PACKED WORD
(FT/SEC) * 32
FEET
INCHES * I000
FEET
SECONDS * 20
2, 7
PACKED WORD
PACKED WORD
-269-
MEMORYALLOCATION FOR TOP
OFFSET SIZE INDEX VARIABLE
1208 - 1209 2 605 SPEED1210 - 1211 2 606 WIND_SPD1212 - 1213 2 607 WIND_DIR1214 - 1215 2 608 RWY_LEN1216 - 1217 2 609 PLANE1218 - 1219 2 610 EPR1220 - 1221 2 611 V21222 - 1223 2 612 ROLL_LIMIT1224 - 1225 2 613 VRI1226 - 1227 2 614 VR2_POS1228 - 1229 2 615 VR2_VAL1230 - 1231 2 616 DSPEED_POS1232 - 1233 2 617 DSPEED_VAL1234 - 1235 2 618 STAR1236 - 1237 2 619 PACK_WORD1238 - 1239 2 620 EYE1240 - 1241 2 621 RWY ID1366 - 1367 2 684 EPRI1368 - 1369 2 685 EPR21378 - 1379 2 690 HOST CNT1382 - 1383 2 692 FMT_ID
UNITS
KNOTSKNOTSDEG * 182.0444FEETFEETRATIO * 8192KNOTSFEETFEETFEETKNOTSFEETKNOTSFEETPACKEDWORDFEETASCIIRATIO * 8192RATIO * 8192SECONDS* 202, 7
-270-
MEMORYALLOCATION FOR ENG
OFFSET SIZE INDEX
1006 - 1007 2 5041108 - 1109 2 555Iii0 - iiii 2 5561112 - 1113 2 5571114 - 1115 2 5581116 - 1117 2 5591118 - 1119 2 5601120 - 1121 2 5611122 - 1123 2 5621124 - 1125 2 5631126 - 1127 2 5641128 - 1129 2 5651130 - 1131 2 5661132 - 1133 2 5671134 - 1135 2 5681136 - 1137 2 5691138 - 1139 2 5701140 - 1141 2 5711142 - 1143 2 5721144 - 1145 2 5731146 - 1147 2 5741148 - 1149 2 5751150 - 1151 2 5761152 - 1153 2 5771154 - 1155 2 5781156 - 1157 2 5791158 - 1159 2 5801160 - 1161 2 5811162 - 1163 2 5821164 - 1165 2 5831166 - 1167 2 5841168 - 1169 2 5851366 - 1367 2 6841368 - 1369 2 6851378 - 1379 2 6901396 - 1397 2 6991398 - 1399 2 7001400 - 1401 2 7011402 - 1403 2 702
VARIABLE
SWITCHENG EPRLIMENG EPRCAUENG EPRCOMENG N1LENG N1RENG NILIMENG NICAUENG EGT LENG EGT RENG--EGTLIMENG EGTCAUENG FF LENG FF RENG EOP LENG EOP RENG EOLLIMENG EOULIMENG EOT LENG EOT RENG EOTLIMENG EOQ LENG EOQRENG EOQLIMENG N2 LENG N2 RENG N2LIMENG LFUELQENGRFUELQENG CFUELQENG TATENG GWENG EPR LENG EPR RHOST CNTDISC WORD7DISC WORD8DISC WORD9DISC WORD10
UNITS
reservedRATIO * 8192RATIO * 8192RATIO * 8192% * 163.84% * 163.84% * 163.84
% * 163.84
DEG-C * 32.768
DEG-C * 32.768
DEG-C * 32.768
DEG-C * 32.768
(LB/HR) * 1.6384
(LB/HR) * 1.6384
PSI * 163.84
PSI * 163.84
PSI * 163.84
PSI * 163.84
DEG-C * 91.022
DEG-C * 91.022
DEG-C * 91.022
GALLONS * 3276.8
GALLONS * 3276.8
GALLONS * 3276.8
% * 163.84
% * 163.84
% * 163.84
POUNDS
POUNDS
POUNDS
DEG-C * 128
POUNDS * .125
RATIO * 8192
RATIO * 8192
SECONDS * 20
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
-271-
MEMORYALLOCATION FOR SYS
OFFSET SIZE INDEX VARIABLE UNITS
ii00 - 1101 2 551 SYS LFLAP
1102 - 1103 2 552 SYS RFLAP
1356 - 1357 2 679 GS FPS
1360 - 1361 2 681 PFD ALT
1364 - 1365 2 683 PFD SELALT
1366 - 1367 2 684 ENG EPR L
1368 - 1369 2 685 ENG EPR R
1374 - 1375 2 688 PFD VSPD
1378 - 1379 2 690 HOST CNT
1384 - 1385 2 693 DISC WORD1
1386 - 1387 2 694 DISC WORD2
1388 - 1389 2 695 DISC WORD3
1390 - 1391 2 696 DISC WORD4
1392 - 1393 2 697 DISC WORD5
1394 - 1395 2 698 DISC WORD6
1396 - 1397 2 699 DISC WORD7
1398 - 1399 2 700 DISC WORD8
1400 - 1401 2 701 DISC WORD9
1404 - 1405 2 703 DISC WORD11
1406 - 1407 2 704 DISC WORD12
DEG * 182.0444
DEG * 182.0444
(FT/SEC) * 32
FEET
FEET
RATIO * 8192
RATIO * 8192
(FT/SEC) * 49.152
SECONDS * 20
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
PACKED WORD
-272-
MEMORYALLOCATION FOR F1
OFFSET SIZE INDEX
1080 - 1081 2 5411086 - 1087 2 5441088 - 1089 2 5451090 - 1091 2 5461092 - 1093 2 5471094 - 1095 2 5481096 - 1097 2 5491264 - 1265 2 6331266 - 1267 2 6341358 - 1359 2 6801360 - 1361 2 6811364 - 1365 2 6831374 - 1375 2 6881376 - 1377 2 6891378 - 1379 2 6901380 - 1381 2 6911404 - 1405 2 703
VARIABLE
PFD PITCHPFD VDVDATPFD XLDDATRADDATPFD SPDDATPITCMDCPROLCMDCPIASDATASTDATPFD ROLLALTITUDEPFD ASELDATVSPDATVMODATHOST CNTBAROSETDISC WORD11
UNITS
DEG * 182.0444FEET * 9.6FEET * 9.6FEET * 6.5536
knots * 500
DEG * 182.0444
DEG * 182.0444
KNOTS * 64
KNOTS * 64
DEG * 182.0444
FEET
FEET
(FT/SEC) * 49.152
KNOTS * 65.536
SECONDS * 20
INCHES * i00
PACKED WORD
-273-
INDEX
i599i
619
671
672
673
675
693
694
695
BIT(S)
0-15
0
1
2
3-4
5
6
0-3
4-7
8-11
12-15
0-3
4-7
8-11
12-15
0-34-7
8-11
12-15
0
1
2
3
4
5
6
7
8
9
I0
II
0
1-4
5
6
7
0-6
7
8-15
0-9
I0
11-15
PACKED WORD DESCRIPTIONS
USAGE
map background contol word (Section 7.1)
TOPMS format valid
left engine o.k.
right engine o.k.
takeoff advisory status
flap set error
left or right bleeds off
control mode index
throttle mode index
roll controller detent status
pitch controller detent status
perspective runway approach indexreference CAS color code
engaged horizontal mode indexarmed horizontal mode index
engaed vertical mode indexarmed vertical mode index
flight path angle bar color code
alert message index
attitude valid
velocity vector mode enabled
altitude hold sub-mode valid
star symbol valid
track bug symbol valid
runway symbol validreference altitude valid
radar altitude valid
airspeed valid
altitude valid
PFD format valid
track select valid
rfdiu disengaged
reserved
RFD Nav #2 tuning
DME #2 tuning
RFD com tuning 1 & 2
reserved
stabilizer out of trim
reserved
reserved
speed brake-do not arm
reserved
-274-
696
697
698
699
700
701
01
2
34
5
6-13
14
15
0-I
0
12
3
4
5
6
7
8
9
i0
II
12
13
14
0
1
2-34
5-9
I0
II
0
12
3
4
5
6
7
01
2
3
4
5
6
7
flap placard
throttle placard
speed brake placardaileron cam out
elevator cam out
rudder cam out
reserved
anti-skid inoperativereserved
reserved
nose gear upnose gear down
nose gear locked
nose gear up to down
nose gear down to upleft gear upleft gear down
left gear locked
left gear up to down
left gear down to upright gear up
right gear down
right gear locked
right gear up to down
right gear down to up
left flap movingright flap movingreserved
speed brake armedreserved
left reverser armed
right reverser armedleft EPR valid
left N1 valid
left EGT valid
left fuel flow valid
left oil pressure valid
left oil temperature valid
left oil quantity validleft N2 valid
rlght EPR valid
r_ght N1 valid
rlght EGT valid
rlght fuel flow valid
rlght oil pressure valid
rlght oil temperature valid
rlght oil quantity valid
rlght N2 valid
-275-
702
703
704
0123456789i0II12131415012345689i011-1213141501236789131415
EPR limit validEPR caution validEPR command validN1 limit validN1 caution validEGT limit validEGT caution validoil pressure limit validoil temperature limit validoil quantity limit validN2 limit validleft fuel quantity validright fuel quantity validcenter fuel quantity validtotal air temperature validgross weight validattitude validairspeed validselected airspeed validairspeed limit validaltitude validselected altitude validvertical speed validvertical deviation validlateral deviation validradar altitude validreservedtrue heading validtrue track validselected track validtrack line validMLS mode engagedMLS mode validGPS mode validwind validleft flap validright flap validMLS airplane color variantground speed validposition validmagnetic track valid
-276-
INDAT(N)
1
2
3
4
5:0-7
5:8-15
6
7
8
9
i0 - 32
33
34
35
36
37:0-7
37:8-15
38
39
40
41
42 - 64
65
66
67
68
69:0-7
69:8-15
70
71
72
73
74 - 96
97
98
99
i00
101:0-7
101:8-15
102
103
104
105
DESCRIPTION
DPII FORMAT ID/STATUS
DPII LEFT POT VALUE
DPII RIGHT POT VALUE
DPII BEZEL DISCRETE WORD
DPII DP ID FOUND BY FORMAT FROM DISCRETES
DPII DEU ID FOUND BY FORMAT FROM DISCRETES
DPII FORMAT CHECKSUM
DPII FORMAT SPARE TIME APPROXIMATION (msec)DPII FORMAT TIME FRAME OVERFLOW COUNT
DPII FORMAT TO DP4 I/O INTERFACE MISSES
DPI2 FORMAT ID/STATUS
DPI2 LEFT POT VALUE
DPI2 RIGHT POT VALUE
DPI2 BEZEL DISCRETE WORD
DPI2 DP ID FOUND BY FORMAT FROM DISCRETES
DPI2 DEU ID FOUND BY FORMAT FROM DISCRETES
DPI2 FORMAT CHECKSUM
DPI2 FORMAT SPARE TIME APPROXIMATION (msec)DPI2 FORMAT TIME FRAME OVERFLOW COUNT
DPI2 FORMAT TO DP4 I/O INTERFACE MISSES
DPI3 FORMAT ID/STATUS
DPI3 LEFT POT VALUE
DPI3 RIGHT POT VALUE
DPI3 BEZEL DISCRETE WORD
DPI3 DP ID FOUND BY FORMAT FROM DISCRETES
DPI3 DEU ID FOUND BY FORMAT FROM DISCRETES
DPI3 FORMAT CHECKSUM
DPI3 FORMAT SPARE TIME APPROXIMATION (msec)
DPI3 FORMAT TIME FRAME OVERFLOW COUNT
DPI3 FORMAT TO DP4 I/O INTERFACE MISSES
DP21 FORMAT ID/STATUS
DP21 LEFT POT VALUE
DP21 RIGHT POT VALUE
DP21 BEZEL DISCRETE WORD
DP21 DP ID FOUND BY FORMAT FROM DISCRETES
DP21 DEU ID FOUND BY FORMAT FROM DISCRETES
DP21 FORMAT CHECKSUM
DP21 FORMAT SPARE TIME APPROXIMATION (msec)
DP21 FORMAT TIME FRAME OVERFLOW COUNT
DP21 FORMAT TO DP4 I/O INTERFACE MISSES
-277-
106 - 128129130131132133:0-7133:8-15134135136137138 - 192193194195196197:0-7197:8-15198199200201202 - 224225226227228229:0-7229:8-15230231232233234 - 256257258259260261:0-7261:8-15262263264265266 - 288289
DP22 FORMATID/STATUSDP22 LEFT POT VALUEDP22 RIGHT POT VALUEDP22 BEZEL DISCRETE WORDDP22 DP ID FOUNDBY FORMATFROMDISCRETESDP22 DEU ID FOUNDBY FORMATFROMDISCRETESDP22 FORMATCHECKSUMDP22 FORMATSPARE TIME APPROXIMATION (msec)DP22 FORMATTIME FRAMEOVERFLOWCOUNTDP22 FORMATTO DP4 I/O INTERFACE MISSES
DP31 FORMATID/STATUSDP31 LEFT POT VALUEDP31 RIGHT POT VALUEDP31 BEZEL DISCRETE WORDDP31DP ID FOUNDBY FORMATFROMDISCRETESDP31DEU ID FOUNDBY FORMATFROMDISCRETESDP31 FORMATCHECKSUMDP31 FORMATSPARETIME APPROXIMATION (msec)DP31 FORMATTIME FRAMEOVERFLOWCOUNTDP31 FORMATTO DP4 I/O INTERFACE MISSES
DP32 FORMATID/STATUSDP32 LEFT POT VALUEDP32 RIGHT POT VALUEDP32 BEZEL DISCRETE WORDDP32 DP ID FOUNDBY FORMATFROMDISCRETESDP32 DEU ID FOUNDBY FORMATFROMDISCRETESDP32 FORMATCHECKSUMDP32 FORMATSPARE TIME APPROXIMATION (msec)DP32 FORMATTIME FRAMEOVERFLOWCOUNTDP32 FORMATTO DP4 I/O INTERFACE MISSES
DP33 FORMATID/STATUSDP33 LEFT POT VALUEDP33 RIGHT POT VALUEDP33 BEZEL DISCRETE WORDDP33 DP ID FOUNDBY FORMATFROMDISCRETESDP33 DEU ID FOUNDBY FORMATFROMDISCRETESDP33 FORMATCHECKSUMDP33 FORMATSPARE TIME APPROXIMATION (msec)DP33 FORMATTIME FRAMEOVERFLOWCOUNTDP33 FORMATTO DP4 I/O INTERFACE MISSES
BIU REAL TIME INTERRUPTCOUNT
-278-
290291292293294295296297298299300301302303304305306307308309 - 311312 - 314315 - 317318319320
COUNTOF PASSES THROUGHBIU MAIN LOOPBIU HIGH-SPEED BUS TRANSMITTERTIMEOUT COUNTERCOUNTEROF DEU RESPONSEFAILURESBIU HSB RECEPTIONSWITH WRONGNUMBEROF BYTESHSB CRC ERRORCOUNTERDISCRETE INDICATING BIU ROUTINES EXECUTEDNUMBEROF BIU REINITIALIZATIONS AFTER POWERONNUMBEROF BIU HARDWARERESETS SINCE POWERONNUMBEROF UNEXPECTEDINTERRUPTS IN THE BIUHSB SECONDARYADDRESS (DESTINATION OF FRAME)HSB PRIMARY ADDRESS (FILTERS INCOMING FRAMES)BIU HARDWAREINPUT DISCRETENORDENTO BIU INPUT COUNTERBIU TO NORDENOUTPUTCOUNTERNUMBEROF TIMEOUTS DURING INPUT FROMDR11 TO BIUNUMBEROF TIMEOUTS DURING OUTPUTFROMBIU TO DR11CONTENTSOF DR11 ADDRESSREGISTERBIU TIMEOUT COUNTER(CLEAREDEACHFRAME)NO DR11 ACTIVITY COUNTERDPI4 GENERALPURPOSESTATUSWORDSDP24 GENERALPURPOSESTATUS WORDSDP34 GENERALPURPOSESTATUS WORDSUNEXPECTEDDR11 WRITE COMMANDCOUNTERUNEXPECTEDDR11 READ COMMANDCOUNTER
-279-
Appendix B VIEW COMMANDENTRIES
When entering commands to VIEW the entered text is shownbelow the last display line. The prompt "->" is shown whileVIEW is accepting input. While the VIEW prompt is displayedthe values of the variables on the display lines are notupdated. This "freezes" the state of all displayed variablesat the time input was started. To perform a value "freeze"when no actual entries need to be made, enter a blank spaceto get into update hold. A carriage return will send a nullcommand to VIEW which will return to standard update mode.
The following pages contain a description of the commandsavailable for VIEW users. When the complete format of a commandis given, optional parts are delimited by square brackets.The last page of this section contains examples of VIEWcommands with a brief description of the actions performed.
** Displaying Variables **
Flight software global variables may be placed on theVIEW display screen by entering their name followed by oneor more options. The general format of this command isshown below.
<name> [ ([+]n) ] [/L=n[/I]] [/F=a[.n]] [/R=n] [/D=a] [/S=n]
The various options are used to override default actionsfrom VIEW.
SUBSCRIPT / OFFSET
A numeric value may be entered, enclosed in parentheses,
immediately following the symbol name. VIEW interprets the
number in one of two ways. If the entered value is an unsigned
constant then the value is treated as an array index. VIEW uses
the index to determine which of several consecutive data items
should be displayed. When the value is preceeded by a "+" or "-"
sign the value will be used as a direct byte offset from the
address associated with the variable's name. When no subscript
is supplied the base address of the entered variable is used.
Note that entering "(I)" or "(+0)" after a variable shows the
identical memory location as is seen when the variable's name is
entered by itself.
-280-
/L
This switch is used to select the line on the display screen
(1-20) where the variable will be placed. The default is the
first line after the last used line. When the /L option is used
any variable already show on the chosen line will be erased. If
the new variable is to be inserted at the line the /I switch
must be used in conjunction with /L. When the /I is used
the variables on the rest of the display page are moved down
to make room for the new entry. Note that variables at the
bottom of the display page will be pushed of the end of the
page.
/F
This switch is used to override the default format stored in
the VIEW symbol table. There are two parts to this switch; The
format type and the format length. The format length indicates
how many bytes of memory belong to the variable and the format
type defines how the data at that location is interpreted. The
following table shows the five format types and their valid
data lengths.
FORMAT LENGTH DESCRIPTION
F 4,8
E 4,8
I 1,2,4
H 1,2,4
A 1 - 8
floating point format
exponential floating point
signed decimal fixed point
unsigned hexadecimal fixed pointASCII text
Note the byte length defaults to 4 when not supplied.
/R
The repeat count is used to display a group of consecutive
memory locations each having the same data format. The default
repeat count is one, which shows the symbolic address location
only.
/D
This switch overrides the default description label placed
alongside an entered variable. VIEW uses the entered variable
name as the label by default. Any ASCII text string may be used,
up to 14 characters long.
-281-
/S
This switch defines the number of lines to be used for an
update sequence of the selected variable. An update sequence
shows the last "n" sampled values of the chosen variable. For
each update cycle of VIEW only one line in the update sequence is
changed to reflect the most recent sample of the variable. When
the line is updated a two digit hexadecimal sequence number is
appended to the end of line. The sequence number is used to
denote which line within the update sequence was updated last.
On the next update cycle the next line within the sequence is
changed. Past values of the variable remain on the screen on
the other lines of the update sequence. Note that only one
update sequence may be in effect at a time.
** Modifying Variables **
A value may be stored into a variable which is shown on
the VIEW display line by specifying the line number and the
desired value. The entered value must be appropriate for the
format used to display the variable. The format of the command
is as follows.
#<line>=<value> [/R=n]
Note that variables on several consecutive display lines may be
modified by using the /R switch to supply the count.
** Deleting Display Lines **
This command is used to remove a variable from the VIEW
display. The format of the command is as follows.
-<line> [/C] [/R=n]
The /R switch is used when several consecutive lines must be
removed. If it is desired that the variables following the
deleted lines should be moved up to fill the vacated space the
compress switch (/C) is entered. To remove all the variables
from the display use "-*"
-282-
** Changing Pages **
VIEW has four display pages consisting of twenty lines
each. Simply enter the desired page number, no <CR> necessary,
to get to the desired one. Note that entering the current
page number is a convenient way to erase unwanted outputshowing on the CRT screen.
** Creating Command Sets **
A sequence of VIEW commands may be saved on a file for use
at a later time. To enable command logging enter
\<file>
where <file> is the name of the disk file where the VIEW
commands are to be stored. To disable logging the "\" is
entered again with no file name appended. Note the standard
VIEW prompt "->" is changed to ">>" when command logging is
enabled. Erroneous VIEW entries, which cause the display of an
error diagnostic, will not be added to the command log.
There is one VIEW command which is valid only while loggingis enabled. The "." command places a pause into the command set
file. Later when the command set is executed the stream of VIEW
commands will be interrupted at the point where the "." was
entered. Two options exist for continuing from a pause duringcommand set execution. An <esc> entry terminates the command
set, returning VIEW to standard update mode. Any other keystroke will cause VIEW to continue on with the remainder ofthe command set.
Built in command sets can be created from a command log
file by using the program VIEW_SET. To use the program enter
RUN UTL:VIEW SET
on the software development VAX. The SETUP.MAR file linked
with VIEW can be modified by this menu driven program. After
exiting VIEW SET the SETUP.MAR file must be assembled and a
new VIEW.EXE must be created using the linker.
-283-
** Predefined Command Sets **
An entire set of VIEW commands may be executed by usinga predefined command set. The format of the command is asfollows.
@n or @<file>
When the @n form is used one of the built-in command sets isexecuted. To get a directory of all the built-in commandsets enter @0. To execute a built in command set type the "@"command followed by the number of the desired command set. Acommand set that exists on a file is executed by following the"@" command by the name of the file containing the set of VIEWcommands. In either case the commands are executed as if theywere entered manually in the order saved in the command set.
** Symbolic Name Directory **
The names of global variables which VIEW has stored in its
symbol table may be displayed on the CRT screen with this
command. The format of the command is as follows.
?<pattern>
All variables that match the entered pattern are shown, in
alphabetic order. The wildcard characters "*" and "%" may
be used in the pattern. The "*" means any characters may fit
in the entered position, including none at all. The "%" symbol
can represent exactly one character position.
** Exiting View **
Enter ^Z to stop the program and save the state of the
display pages. "QUIT" exits VIEW freeing all display lines.
Since a ^Z exit reserves a block of VAX memory for storage of
page configuration, the QUIT should be used at the end of a
session.
** Obtaining Help **
Enter "HELP" to produce a page of command reference text.
Any key stroke will return the display to the standard VIEW
page.
-284-
COMMAND
PITCH
LIST (4)/L=6/R=3/F=H. 2
#4=17.51
-15
-I/R=3/C
@4
@I-]COMMANDS.LOG
\[-]COMMANDS.LOG
\
?S*I
?R%%%
VIEW command examples
RESULT
Places the variable PITCH on the next
available display line using the format
stored in the VIEW symbol table.
Places three elements of the array LIST,
starting with the fourth element, onto
display lines 6 - 8. The data format is
two byte hexadecimal representation.
Changes the global memory associated
with the variable on line #4 to 17.51.
The format used on the display wouldneed to be either "F" or "E".
Remove from the display the variable
shown on line #15.
_Remove the variables on lines 1 - 3,
moving the rest of the displayed
variables up to fill the empty lines.
Execute the fourth built in command set.
Execute the command set stored in the
specified file.
Log VIEW commands on the specified file.
Terminate command logging.
Display all global variable names which
start with "S" and end with "i"
Display all four letter global variablenames which start with "R".
-285-
Appendix C CREATING THE EXECUTABLEIMAGES
The following files are provided with the source codefiles in a delivery set. These files are used in thegeneration of the display executable images.
BUILD.COMDDSTAR.COMDSPFST.COMDSPHDL.COMDSPSLW.COMSECTION.COMVIEW.COM
Builds all images using following ".COM" filesLinker commands for building DDSTAR.EXELinker commands for building DSPFST.EXELinker commands for building DSPHDL.EXELinker commands for building DSPSLW.EXELinker commands for building SECTION.EXELinker commands for building VIEW.EXE
DSPFST.OPTDSPHDL.OPTDSPSLW.OPTOPT.OPTSECTION.OPTMAPTBL.MAR
PASS.MAR
Linker options for DSPFST.EXELinker options for DSPHDL.EXELinker options for DSPSLW.EXELinker options for all executable imagesLinker options for SECTION.EXE and VIEW.EXEGlobal section mapping table for DSPFST,DSPHDL, DSPSLWGlobal section mapping associated withVIEW password entries.
COMMON.FORGBLNAME.DAT
Fortran "Block Data" module for BLKMACContains names of all images and globalsections for use by the utilities GLOBAL andSECTION.
Several command procedures and utility programs exist formaintenance of the display software. Users must have the
following commands in their LOGIN.COM file.
DEFINE UTL DUB0: [CSC.CJS.CMS]/JOB
@UTL:SET UP
The executable programs have been defined as DCL commands,
therefore they are accessed by simply entering their names
(CMS_SYSTEM, GLOBAL, BLKMAC). The command files are acti-
vated by prefixing "@UTL:" to the file name.
CMS SYSTEM.EXE
GLOBAL.EXE
BLKMAC.EXE
MACALL.COM
FORALL.COM
FTN.COM
Accesses source file delivery sets
Interactive program for global section
linkage
Creates object modules for global data
Assembles macro source files
Compiles Fortran source files
Compiles individual Fortran source file.
-286-
The first step in creating the executable images is thegeneration of VMS object modules from the source code filesdescribed in this document. The VMS Fortran compiler andMacro assembler are used to create object modules for ".FOR"and ".MAR" files respectively. Object files for the globaldata modules, ".INC" files with Fortran COMMONdefinitions,are generated with the utility program BLKMAC. One sourcefile, COMMON.FOR,is provided to BLKMACas input. The fileis a Fortran "Block Data" module, containing INCLUDE state-ments for each of the ".INC" files containing common blocks.Also data initialization statements for the global variablesappear in COMMON.FOR. BLKMACcreates one object module foreach COMMONstatement encountered in the input stream. Thefile name will have the same name as the Fortran commonblock. Two VMS command files were designed to facilitate thegeneration of object modules.
@UTL:MACALL
@UTL:FORALL
The first command assembles all VAX macro source files on an
account. The second command both compiles all Fortran files
on the account and automatically executes BLKMAC to compileglobal data specification files.
The next step is the creation of global section access
files. These files are used by the VMS linker and by the
executable images to determine the global section access
allowed for the individual executable images. The VMS
command GLOBAL_SECTIONS (GLOBAL for short) is executed to
interactively select the global section usage for each of
the applications images. This command gets the names of all
the images and global sections from the file GBLNAME.DAT,
which must exist on the current default directory. Infor-
mation about read and write access to the various global
sections must be provided for each executable image. This
information is used to generate the ".OPT" files and the
VAX macro file MAPTBL.MAR. Also the user is prompted for
VIEW passwords. When all password entries are complete,
information about the global section access privileges for
each password must be provided. The file PASS.MAR is
created from this information. When GLOBAL is finished the
two ".MAR" files must be assembled as follows.
GLOBAL
<interactive session>
MAC PASS,MAPTBL
The last step for the creation of the executable images
is Linking. All the required linking is performed by usingthe build command file provided.
@BUILD
-287-
Appendix D GENERALUTILITIES
A group of general purpose utility procedures are usedby display software. All but one reside in the utilitylibrary UTIL.OLB. The following is a list of the modulesused from the library. The description of these modules isprovided in the flight software utilities reference manual.
Condition Handling
C HDL EXCEPTIONS REPORT REPORT CHECK SHOW TT
Data Formatting
BCDTIM FMTTIM OTS$FLOAT
Mathematics
ANGL MXV POLAR SCOS UVC VCP VDP VMG XYZ
Map projection
CLIP GRID POSBTS
Miscellaneous
ASSIGN GET GET CHAR LOCK MAPCOM
The utility procedure PROJECT is not part of the utility
library. Its description is provided on the following page.
-288-
MODULE NAME:
FILE NAME:
PROCESS:
CALLED BY:
CALLING SEQUENCE:
PROJECT
PROJECT.FOR
DSPFST, DSPSLW
TURN, LINE, PASSBY
CALL PROJECT(WPTS, I,DIST,RLAT,RLON)
PURPOSE:
To compute a position between waypoints.
DESCRIPTION:
This utility procedure is called to find the latitude
and longitude of a point on the "great circle" arc connect-
ing two waypoints. The first three items in the parameter
list are inputs to PROJECT, while the last two are outputs.
The first input parameter is one of the waypoint buffers,
either the active (ACT WPTS) or the provisional (MOD WPTS).
The index into the waypoint buffer of the end waypoint of
the leg being processed is passed next. The last input
parameter is the distance, in feet, to the desired position
from the end waypoint. The values returned through the
remaining parameters in the calling list are the latitude
and longitude of the desired position.
Figure D.I on the following page shows how the position
of the desired point is found. The values given are A, a,
R, and the unit vectors for the arc end points.
GLOBAL REFERENCES:
FUNCTIONS AND SUBROUTINES
UVC POLAR
"GREAT CIRCLE" ARC
POSITION CALCULATION
-289-
A
D
o =A/R ¢ =a/R {Subtended angles}
sin(O)d/D = _ = sin(O)cos (0) + sin(O)" sin(O)cos(@)
{Chord ratio }
•_ i A A= P2+ (l-p)I_ {direction vector}
^ gp-
IglUnit Vector
A
LATITUDE = ARCSIN (Px)
LONGITUDE = ARCTANGENT(- _y ,pz)A
-figure D.I-
-291-
Appendix E DISPLAY FORMAT "FREEZE"
The global variable FREEZE is used to stop portions of
the display software while the display processes are active.
This technique is used for debugging display formats and
customizing display screen appearance for photograph
sessions. The utility VIEW is used to manually modify the
variable FREEZE. By default the variable is set to zero for
normal display software operation. Note that the variable
will be automatically cleared if the flight management flag
LABFLG is not set on. Shown below are the values that may
be placed in FREEZE with VIEW, and their effect on the VAX
display software.
FREEZE = 1
No DATAC or interprocessor link I/O is performed. This
freezes the current sensor and FM/FC inputs at their
current values. Display microprocessor I/O is performedas usual.
DISFIL and FFPRC are not called. This eliminates the
intermediate processing of input variables.
Map background requests are generated regularly. This is
normally performed by the FM/FC update request MAPUPD,
which is no longer received. This is done since the
navigation format require fresh map backgrounds at least
every 15 seconds.
FREEZE = 3
Everything from FREEZE = i.
Display applications software is not executed, except map
background generation modules. This means the display
microprocessor output buffer remains frozen with the last
values sent to the formats.
When FREEZE is set to either value, the utility VIEW
may be used to manually modify VAX display variables which
effect the display formats in the microprocessors. With
FREEZE = 1 the inputs to the applications modules are
changed with VIEW. These modules will then perform their
computations on the input variables and format the display
microprocessor output buffer. When using FREEZE = 3, the
display microprocessor output buffer must be modified
directly with VIEW. The advantage of the first setting is
the user can work in engineering units such as feet and
_-_k-_tNx_?_"_r',_,_tb' !_t._( PRECEDING PAGE BLANK NOT FiLM_.D
-292-
degrees and does not need to know the format of the display
output buffer. The setting of "3" is used when it is more
convenient to modify the output buffer directly, or the
active applications software produces undesirable results.
This happens in the case of display outputs that are the
differential of input signals. Since inputs are frozen at
their last value, the differential becomes zero, which will
be stored by an applications module into the display outputbuffer when FREEZE = I.
REPORTForm Approved
DOCUMENTATION PAGE OMaNo.o7o4-o18a
Puioh( rel_rhnq burden for lhfs t;ollP(tlOn of informahon is @_tlrnate_cl to avPr,tqe I hf)ur Dr rr,,_p_)n,.t,. Includinq the tlrnP for rPvlPWlllq inBtructiotl$, 1,catching PXlBtlflCj data sources,
L|alhq,ranq and ma*ntalnmg the data needed, and completing and tewPw*nq the, _oItP, Lion r)l mh_rm,ll*on _Pnd (omment$ rPc)ardmcj this burden estimate or any other aBpe(t of thi_toilP_tl_)n o| infr-,rm_tlon, infludlnq _u_gestlon$ for redu(In 9 Ih0 _, burden Ii) W_l_h_n_jtl}n _l_ldqudflP¢$ _q'fVl_.e_. I_trectorate TOT Information Opefatlon_ and RPpOft$o 12 lS Jef_ecson
Day**, H.Ihwav ¢,uite )204. Arhnqton. VA 22202-4 ]0}. and to the. Otfh e ,)f M.m_.|Pmenl ,rod IhJd,wt. Pal_,rwork R_lu(tlnn Pro Pt_t (0104-0188). Washm(jton, DC 2050)
1. AGENCY USE ONLY (Leave blank) 2. REPORT DATE 3. REPORT TYPE AND DATES COVERED
January 1992 Contractor Report
4. TITLE AND SUBTITLE Advanced Transport Operating System s. FUNDING NUMBERS
(ATOPS)Color Displays Software Description- C
MicroVAX System
6. AUTHOR(S)
Christopher J. S1ominskiValerie E. PlylerRichard W. Dickson
7. PERFORMINGORGANIZATIONNAME(S)ANDADDRESS(ES)
Computer Sciences Corporation3217 North Armistead Avenue
Hanlpton, Virginia 23666-1379
9. SPONSORING / MONITORING AGENCY NAME(S) AND ADDRESS(ES)
National Aeronautics and SpaceLangley Research CenterHampton, Virginia 23665-5225
Administration
WU
NAS1-19038
505-64-13-11
8. PERFORMING ORGANIZATIONREPORT NUMBER
10. SPONSORING / MONITORINGAGENCY REPORT NUMBER
NASA CR-189603
11. SUPPLEMENTARYNOTES
Langley Technical Monitor: Dr. James R. SchiessRobert A. Kudlinski
(COTR)
12a.DISTRIBUTION/ AVAILABILITYSTATEMENT
Unclassified - Unlimited
Subject Category 06
12b. DISTRIBUTION CODE
13. ABSTRACT (Maximum 200 words)
This document describes the software created for the Display MicroVAX computer used for the
Advanced Transport Operating Systems (ATOPS) project on the Transport Systems Research
Vehicle (TSRV). The software delivery of February 27, 1991, known as the "baseline display
system", is the one described in this document. Throughout this publication, module descriptions
are presented in a standardized format which contains module purpose, calling sequence, detailed
description and global references. The global references section includes subroutines, functions
and common variables referenced by a particular module.
The system described supports the Research Flight Deck (RFD) of the TSRV. The RFD contains
eight Cathode Ray Tubes (CRTs) which depict a Primary Flight Display, Navigation Display,
System Warning Display, Takeoff Performance Monitoring System Display, and Engine Display.
14. SUBJECT TERMS
Electronic Flight Instrumentation System Glass CockpitPrimary Flight Display Multifunction Displa)flavigation Display Fli_ht Displa_ Software
17. SECURITY CLASSIFICATION 18. SECURITY CLASSIFICATION 19. SECURITY CLASSIFICATIONOF REPORT OF THIS PAGE OF ABSTRACT
Unclassified Unclassified Unclassifiedi
NSN 7S40-01-280-$500
lS. NUMBER OF PAGES
29316. PRICE CODE
A1320. LIMITATION OF ABSTRACT I
UL
Standard Form 298 (Rev 2-89)Prescribed by ANed Std Z.]9-18
_98-102