Stored program control with memory work area assignment in a communication switching system

Kalat , et al. October 28, 1

Patent Grant 3916112

U.S. patent number 3,916,112 [Application Number 05/347,281] was granted by the patent office on 1975-10-28 for stored program control with memory work area assignment in a communication switching system. This patent grant is currently assigned to GTE Automatic Electric Laboratories Incorporated. Invention is credited to Ambrose W. W. Clay, Phil R. Harrington, Charles A. Kalat, Eugene A. Wodka.


United States Patent 3,916,112
Kalat ,   et al. October 28, 1975

Stored program control with memory work area assignment in a communication switching system

Abstract

The executive or operating system for the central processor schedules tasks to be performed for call processing and maintenance. A call history table in the main core memory has an individual area for each register junctor for information relating to a call being processed. Work areas are assigned for tasks to be performed, with linkage to the call history table. The call history table also has linkages to work areas being used for each call.


Inventors: Kalat; Charles A. (Schaumburg, IL), Wodka; Eugene A. (Schaumburg, IL), Clay; Ambrose W. W. (Glen Ellyn, IL), Harrington; Phil R. (Mount Prospect, IL)
Assignee: GTE Automatic Electric Laboratories Incorporated (Northlake, IL)
Family ID: 23363078
Appl. No.: 05/347,281
Filed: April 2, 1973

Current U.S. Class: 379/244; 379/284
Current CPC Class: H04Q 3/54533 (20130101)
Current International Class: H04Q 3/545 (20060101); H04Q 003/54 ()
Field of Search: ;179/18ES,18EB,18EA

References Cited [Referenced By]

U.S. Patent Documents
3536842 October 1970 Ewin et al.
3576398 April 1971 Dejean et al.
Primary Examiner: Brown; Thomas W.

Claims



What is claimed is:

1. In a communication switching system including a switching network having a plurality of terminals, a plurality of line circuits individually connecting communication lines to individual ones of said terminals, a plurality of register junctors individually connected to other of said terminals, marker means to independently find idle paths and establish connections through said network between terminals and to detect originating call requests from calling line circuits and for each call request to select and establish an originating connection for the call to an idle register junctor, a register subsystem including the register junctors with means to receive and store call digits for each call, a data processing unit which includes a central processor and a central processor memory for processing call data, data communication means interconnecting the data processing unit with the marker means, data transfer means interconnecting the data processing unit with the register subsystem, the marker means being effective after said originating connection between a calling line circuit and a register junctor has been selected to seize the data communication means and transmits an originating data message identifying the calling line circuit and register junctor terminals to the central processor, the register subsystem including individual storage means for each register junctor for storing said call digits and other information relating to a call, a method of storing information, comprising:

providing the central processor memory with a portion thereof designated a call history table with individual storage areas for each register junctor;

storing information in the call history table for the register junctor indicating that a call has been initiated in response to the receipt of said originating data message;

finding class of service information relating to the calling line to be used in processing the call;

transmitting control information via the data transfer means from the central processor for storage in the storage means for the register junctor, to indicate that a call as been initiated and to provide processing information to prepare to receive called number digits;

providing the central processor memory with a plurality of areas designated as work areas;

assigning work areas to a call during different processing steps thereof, a first work area being assigned to a call in response to receipt of said originating data message; and

storing information both in the call history table and in the assigned first work area to link them both by identifying the said first work area in the call history table and by identifying the part of the call history table for the register junctor in the said first work area.

2. In a communication switching system a method as claimed in claim 1, further including releasing said first work area after initial call processing for the call in the data processing unit;

said system further including at least one register sub-system sense line coupled from the register subsystem to the data processing unit, said register subsystem including a register memory comprising a plurality of register word stores, wherein said individual storage means for each register junctor comprises a given number of the register word stores for each register junctor, including control word stores and called number digit word stores, and wherein the register memory also includes common word stores, one of which is a service request word store, the register subsystem being responsive to given conditions requiring further processing by the data processing unit to generate service request signals and to apply them to said sense line, the register subsystem further placing address information in said service request word store identifying the register junctor used for the call requiring said further processing;

further including detecting service request signals on said register subsystem sense line, in response thereto using said data transfer means to obtain the address information from said service request word store and scheduling further call processing to assign again a work area, placing the identity of the part of the call history table for the register junctor therein, and placing the identify of the last said work area in the call history table to thereby link them for use during said further call processing.

3. In a communication switching system a method as claimed in claim 2, wherein a section of each said work area assigned for call processing is a register memory image area, the data processing unit responding to the detection of service request signals on said register subsystem sense line and using said data transfer means, reading information from certain of the control word stores and called number digit word stores of the register junctor for the call and placing the last said information in the assigned register memory image area for use by the data processing unit in processing for the call;

wherein the processing steps in the data processing unit include analyzing digits, said analyzing including determining if enough called number digits have been received to complete a connection through the switching network to a terminal, and if not using said data transfer means to place processing information in a control word store of the register junctor, said processing information comprising an instruction to collect a specified total number of called number digits for the next generating of a service request signal applied to said register subsystem sense line, and releasing the last assigned work area after placing the last said information in a control word store.

4. In a communication switching system a method as claimed in claim 3, wherein the register subsystem performs given operations in a relatively short time in response to certain instructions included in processing information received from the data processing unit until generation of a service request signal applied to said sense line;

and when said certain instructions are included in processing information placed in a control word store of the register memory, retaining the work area then being used for the call while awaiting the next service request on said sense line for the call.

5. In a communication switching system a method as claimed in claim 3, wherein said data processing unit further includes an auxiliary memory system comprising an auxiliary memory, control storage means, and means to retrieve data from the auxiliary memory under control of data in the control storage means either by direct addressing or by associative search while the central processor is operating independently, there being class of service and called number translation tables in the auxiliary memory, memory control means coupling said central processor memory to the central processor and to the auxiliary memory system with means to transfer address and data information between the central processor and the central processor memory, and also to transfer address and data information between the auxiliary memory system and the central processor memory;

wherein said step of finding class of service information relating to the calling line comprises deriving input information from said originating data message and supplying said input information via the memory control means into said first work area;

further including the steps of supplying a signal to the auxiliary memory system to cause it to transfer information from the first work area to said control storage means, said retrieving data from the auxiliary memory being effective to obtain the class of service information, and transferring the last said information via the memory control means into first call storage means consisting of said first work area and the call history table;

during processing steps when called number digits have been transferred from the register memory into current call storage means consisting of the then assigned work area and call history table for the call, performing a translation from said tables in the auxiliary memory and placing the resulting translation information in said current call storage means.
Description



BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to stored program control in a communication switching system, and more particularly to utilization of memory for temporary storage of call processing information.

2. Prior Art

There are two basic techniques for the assignment of parameter storage in a stored program system. One scheme provides dedicated storage to each call processing function, and the other provides dynamic storage allocated on a per call basis. The state of the art is discussed in Chapter 7 on Utilization of Computer Memory, of a book by James Martin, "Programming Real-Time Computer Systems," Prentice-Hall, Inc., Englewood Cliffs, N. J. (1965).

SUMMARY OF THE INVENTION

The invention relates to a communication switching system in which a register-sender subsystem provides for receiving and storing call digits, and a separate data processing unit provides other call processing functions such as digit analysis and call routing. The register-sender subsystem has register junctors connected via a switching network to calling lines during dialing and until the call is switched to a called line or outgoing trunk.

According to the invention, the main memory for the computer of the data processing unit has a call history table as dedicated storage for each register junctor, and dynamically allocated work areas for use during short intervals of a call for specific functions by segments of the program, with linkages between the call history table and the work areas. There is also a queue structure for scheduling of jobs and assignment of work areas. Work areas are used not only for call processing, but also for maintenance programs.

CROSS-REFERENCES TO RELATED APPLICATIONS

The preferred embodiment of the invention is incorporated in a COMMUNICATION SWITCHING SYSTEM WITH MARKER, REGISTER, AND OTHER SUBSYSTEMS COORDINATED BY A STORED PROGRAM CENTRAL PROCESSOR, U.S. patent application Ser. No. 130,133 filed Apr. 1, 1971 by K. E. Prescher, R. E. Schauer and F. B. Sikorski, now abandoned, and a continuation-in-part thereof, Ser. No. 342,323, filed Mar. 19, 1973, now Pat. No. 3,835,260 issued Sept. 10, 1974, hereinafter referred to as the SYSTEM application. The system may also be referred to as No. 1 EAX or simply EAX.

The memory access, and the priority and interrupt circuits for the register-sender subsystem are covered by U.S. patent application Ser. No. 139,480 filed May 3, 1971, now Pat. No. 3,729,715 issued May 31, 1973, by C. K. Buedel for a MEMORY ACCESS APPARATUS PROVIDING CYCLIC SEQUENTIAL ACCESS BY A REGISTER SUBSYSTEM AND RANDOM ACCESS BY A MAIN PROCESSOR IN A COMMUNICATION SWITCHING SYSTEM, hereinafter referred to as the REGISTER-SENDER MEMORY CONTROL patent application. The register-sender subsystem is described in U.S. patent application Ser. No. 201,851 filed Nov. 24, 1971, now Pat. No. 3,737,873 issued June 5, 1973, by S. E. Puccini for DATA PROCESSOR WITH CYCLIC SEQUENTIAL ACCESS TO MULTIPLEXED LOGIC AND MEMORY, hereinafter referred to as the REGISTER-SENDER patent application. Maintenance hardware features of the register-sender are described in U.S. patent application filed July 12, 1972, Ser. No. 270,909 now Pat. No. 3,784,801 issued Jan. 8, 1974, by J. P. Caputo and F. A. Weber for a DATA HANDLING SYSTEM ERROR AND FAULT DETECTING AND DISCRIMINATING MAINTENANCE ARRANGEMENT, this patent being referred to hereinafter as the REGISTER-SENDER MAINTENANCE patent.

The marker for the system is disclosed in the U.S. Pat. No. 3,681,537, issued Aug. 1, 1972 by J. W. Eddy, H. G. Fitch, W. F. Mui and A. M. Valente for a MARKER FOR COMMUNICATION SWITCHING SYSTEM, and also in U.S. patent applications Ser. No. 281,586 filed Aug. 17, 1972, now Pat. No. 3,806,659 by J. W. Eddy for an INTERLOCK ARRANGEMENT FOR A COMMUNICATION SWITCHING SYSTEM, Ser. No. 311,606 filed Dec. 4, 1972, now Pat. No. 3,830,983 issued Aug. 20, 1974, by J. W. Eddy and S. E. Puccini for a COMMUNICATION SYSTEM CONTROL TRANSFER ARRANGEMENT, Ser. No. 303,157 filed Nov. 2, 1972, now Pat. No. 3,809,822 issued May 7, 1974, by J. W. Eddy and S. E. Puccini for a COMMUNICATION SWITCHING SYSTEM INTERLOCK ARRANGEMENT, hereinafter referred to as the MARKER patents.

The communication register and the marker transceivers are described in U.S. patent application Ser. No. 320,412 filed Jan. 2, 1973, now Pat. No. 3,814,859 issued June 4, 1974, by J. J. Vrba and C. K. Buedel for a COMMUNICATION SWITCHING SYSTEM TRANSCEIVER ARRANGEMENT FOR SERIAL TRANSMISSION, hereinafter referred to as the COMMUNICATIONS REGISTER patent application.

The above system, register-sender, marker and communication register patents and applications are incorporated herein and made a part hereof as though fully set forth.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a telephone switching exchange;

FIG. 2 is a block diagram of the system showing the duplication of the subsystems of FIG. 1 and the reconfiguration control;

FIG. 3 is a diagram of interface information between the register-sender and the data processing unit;

FIG. 4 is a layout diagram of the register-sender memory;

FIG. 5 is a diagram of the call history table;

FIGS. 6-12 are layout diagrams of the call history table contents during time frames 0-6 respectively;

FIG. 13 is a field program block diagram flowchart;

FIG. 14 is a typical layout of a portion of the main core memory;

FIGS. 15-35 are memory diagrams and flowcharts for the executive program;

FIG. 36 is a combined hardware and software simplified flowchart for a local-to-local call;

FIGS. 37-44 are flowcharts and diagrams of the common maintenance program;

FIG. 45 is a high level flowchart for the diagnostic control program; and

FIGS. 46-95B are executive software flowcharts.

GENERAL SYSTEM DESCRIPTION

The communication switching system in which the invention is incorporated is shown in FIG. 1. The system is described at length in said SYSTEM patent application, and only a brief summary description is supplied here.

A stored program data processing unit DPU comprises a central processor (CCP) 135 with a main core memory 133, and a drum memory system (DMS) having drum control units 132 and a drum memory 131. The common control of the system comprises the data processing unit, and a register-sender subsystem shown in FIG. 1 as comprising common logic control 202 with a core memory RCM, register junctors RRJ, a sender receiver matrix RSX, tone receivers 302-303 and tone senders 301. A call originated at a local line which comprises the telephone lines connected to line circuits LC1-LC1000 is connected through a line group switching group to a register junctor RRJ. For example a call originated at line circuit LC1 is connected through an A matrix 111, a B matrix 112, an originating junctor OJ, and an R matrix 114, to one of the register junctors RRJ. The register-sender subsystem returns dial tone via the register junctor, after which the dialed digits in either dial pulse form or tone form are received and processed via the common logic 202 and stored in the core memory RCM. The digits are processed in the register-sender subsystem and the data processor unit subsystem after which a terminating path is completed from the originating junctor through the selector group through the A, B and C stages to a terminating junctor 115 of a line group if it is a local terminating call or to an outgoing trunk 121 if it is an outgoing call to another office. For a local call the route is extended through C, B and A matrices to the called line.

In the data processing unit DPU the central processor 135 operates with a main core memory 133, and also makes use of a drum memory 131 via drum control units 132. A communication register 134 provides for communication of data between the central processor and transceivers in the markers for the switching network. A maintenance control unit 137 connects the central processor 135 to a maintenance console 145; and an input-output device buffer 136 connects the central processor to other devices such as a teletypewriter 142 of tape unit 144 in a maintenance and control center.

Note that there may be two register-sender units, and that each has up to 192 register junctors, making a maximum of 384. Each register junctor has a dedicated area in the register-sender memory RCM, and also a dedicated area in a call history table of the main core memory 133.

As shown in FIG. 2, most of the units of the system are duplicated, and many configurations are possible, as described in the SYSTEM application.

FIG. 3 is a diagram showing interface information between the register-sender and the data processing unit, and FIG. 4 is a layout diagram of the register-sender memory, which are described in the SYSTEM application in Section 4 of the "Computer User Manual" portion, and are also explained in the REGISTER-SENDER patent applications.

CALL HISTORY TABLE - WORK AREA LINKAGE

There are two basic techniques for the assignment of parameter storage in a software system. One scheme would provide dedicated storage to each call processing function and the other would provide dynamic storage allocated on a per call basis. In the EAX system, however, both dedicated and dynamically allocated storage is provided for the processing of calls. The dedicated storage consists of the Call History Table. Each entry in this table is directly associated with a specific register junctor. The dynamic storage consists of work areas. Any work area and in fact several different work areas may be used in the processing of each call.

Each type of storage is utilized in situations for which they are best suited. The Call History Table is used to retain data concerning the call during major breaks in the processing where software has no role. Such a situation would be while awaiting dialed digits. The Call History Table is utilized under these circumstances because the register sender hardware has control of the call and the only link to a specific call is the register junctor identity which uniquely identifies the call history table entry associated with the call. Hence, the dedicated relationship between the Call History Table entries and register junctors. The work areas are dynamically allocated and released as needed to perform interfaces with Operating System software. These processing breaks are required to interface with other hardware subsystems such as magnetic drum and markers. The work area allows continuity of data during these breaks. Since these interfaces normally require significantly more storage, it is economically advantageous to utilize dynamic storage on a temporarily assigned basis.

Since both types of storage are used and in fact provide links across processing breaks, it is necessary to relate them to each other. Therefore, both the Call History Table and the work areas contain pointers to the other. As a consequence, whenever a work area controlled function is completed, the Call History Table address located in the work area may be used to associate the results of the function with the appropriate call. Similarly, when a hardware controlled condition (call abandoned) occurs while a work area is also in use, the appropriate work area can be located and if necessary, a change in processing can be initiated. This work area pointer in the Call History Table is referred to as a hitching post and is also used in the work area auditing process to help locate busy work areas.

The use of these two distinct storage types allows the system to minimize parameter storage requirements.

CALL HISTORY TABLE

The system has the capability of processing as many as 384 calls at one time. Any call that originates into the system must have a signaling path from the originating inlet to the common control (the register sender (RS) and the central processor unit (CPU). The register junctor is the component which provides this signaling path between the network and the common control equipment. Since the maximum number of register junctors in the system is 384, the maximum number of calls that the software can process is 384.

The software is structured in such a manner that it identifies the calls which it is processing by the register junctor identities which are being used to supply the signaling path for the call. Since the software must be able to process several calls at one time, it cannot work on one call continuously from the time of origination to the time it is connected through the network. Thus, the software performs several small tasks on a call when it is not doing other work in the system (i.e., ticketing, processing other calls, maintenance).

This implies that the software must have an area to save information about the call when it is performing other work. Since the software must be capable of processing 384 calls at one time, there exist 384 areas in core to save intermediate data for each call. The area in core which is used to save intermediate data for calls that are being processed is the call history table.

The call history table contains 384 entries. Each entry consists of a twelve word buffer to store intermediate data about the call which is associated with a particular register junctor. Each entry in the call history table is associated with one of the 384 register junctors in the system. Thus, an entry in the call history table is accessed by using the register junctor identity associated with the call being processed. A register junctor identity is defined as follows:

Register Junctor Identity = Register Sender Section in which the register junctor is part of (0,1) + Register Junctor Identity relative to the Register Sender Section that is part of (0-191)

Examples of information that is saved in the call history table are:

1. Originating class of service data

2. Digit translation data

3. Data which is internally generated by the software that is to be used for later processing of the call.

4. Data which will be sent to the ticketing software so that the call can be billed properly.

Another important item of information which is stored in the call history table is a pointer to the work area which is being used to perform a task for the call. Thus, it is easy to retrieve the work area associated with a call by knowing the register junctor identity associated with the call. It is worth mentioning that a work area is not always linked to the call history table. A work area is linked to the call history table when the software is performing a task to process the call (i.e., there is no work area linked to the call history table during the reception of digits).

A diagram of the call history table is shown in FIG. 5 It comprises 4608 words (384 entries .times. 12 entries/word). FIGS. 6-12 are diagrams of one entry of 12 words, which show that information is in a call history table entry during various stages of processing a call, identified as time frames 0-6. Note that there are groups of data (overlays) identified as CHA, CHC, CHE, CHG, CHH, CHL, CHM, CHQ, CHT, and CJA. Individual items in each group are identified by the three letters of the group followed by three additional letters. In some cases sets of items within the same word also have a common identity comprising the same group identity followed by three other letters, not shown in FIGS. 6-12. The entire word is also identified by the three group letters followed by W and a pair of digits 00-11 for the word; for example the first word of group CHA is identified as CHAW00, and is located in word three of the entry. Note that the items of a group may appear in an entry during one or more of the time frames of FIGS. 6-12, and that the same location in an entry is used for different items during the progress of a call through the time frames. The information for the various items of the groups is defined below. The tables at right are references for definitions and values.

Group CHA comprises six words 0-5 located in the entry in rods 3-8. This group is used to schedule program module C01 (class-of-service initialization) and by the F32 (CCR handler) module. Table CHA is also used by program module C01 in the process of obtaining a work area. The fifth and sixth words contain status information which is used for scheduling purposes. __________________________________________________________________________ Word CHAW.phi..phi. in entry word 3 Item Bits Description Table __________________________________________________________________________ LKC .phi.-14 Linkage control FWALKC TYP 15-20 Work area type indicator FWATYP BK.phi. 21-23 Constant value .phi. Word CHAW.phi.1 in entry word 4 NPG .phi.14 Next program identity FWANPG ELN 15-17 Entry line number FWAELN PRI 18-20 Priority PWAPRI BK1 21-23 Constant value .phi. Word CHAW.phi.2 in entry word 5 TPF .phi.14 Identity of program in control of FWATPF work area ADI 23 Audit indicator used by the work area audit routine (WARAUD) which determines is the call history table can be found in a queue or not. BK2 15-22 Constant value .phi. Word CHAW.phi.3 in entry word 5 FEP .phi.-14 Forced exit program identity FWAFEP ERP .phi.-14 Error program identity FWAERP FEL 15-17 Entry line number in forced exit program FWAFEL FPR 18-20 Priority of forced exit program FWAFPR HPB 23 Hitching post indicator indicates whether or not the call history table slot is being used as a hitching post for a work area. BK3 22-23 Constant value .phi. Word CHAW.phi.4 in entry word 6 RJI .phi.-14 Register-junctor identity FWARJI RJN 4-11 Register-junctor number FWARJN SEC 12 Register-sender section EIO 15-20 Error indicators from the I/O programs FWAEIO of the executive BK4 21-23 Constant value .phi. Word CHAW.phi.5 in entry word 7 WAA .phi.-14 Work area address indicates the address of the work area that is being used for the call. CCM 15-20 call condition modified indicates the call abandoned, a time out, or an interrupt has occurred. Field CCM contains the fields TIO, CAB and XTO. TRI 15-18 Translation interrupt FWBTRI CAB 19 Call abandon FWBCAB XTO 20 Time-out FWBXTO BK5 21-23 Constant value .phi. __________________________________________________________________________

Group CHC is used to store the originating marker data frames, which are the equipment information for originating calls. This information from the originating marker is used by call processing in the identification and processing of the call. CHC is accessed by the call history address assigned by the executive. It consists of two 24 bit words with a bias of 10 so that they appear in words 10 and 11. __________________________________________________________________________ Word CHCW.phi..phi. in entry word 10 SEC .phi.-1 Office section CTNSEC SBS 2-3 Subsection indicates orig. marker pair CTNSBS SSB .phi.-3 Section and subsection SEC + SBS MID 4 Marker identity FWCMID MTN 5 Test call FWCTCL INO 7-11 Instructions originating FWDINO-A,B BUN 16-19 B unit FWDBUN-A CSO 20-23 Call status originating FWDSCO-A Word CHCW.phi.1 in entry word 11 BUN .phi.-2 B unit outlet FWDBUO-A RUO .phi.-5 R unit outlet FWDRUO-A AUI 6-10 A unit inlet FWDAUI-A AUN 11-14 A unit FWDAUN-A ABG 15-17 AB group FWDABG-A MTX 18-21 Matrix FWDMTX ABX 15-21 Consists of ABG and MTX LMI 6-21 Line matrix inlet, defines the matrix and unique inlet of the matrix for a line or trunk. Consists of MTX, ABG, AUN and AUI. RBO .phi.-5 R unit, B unit combination. Consists of RUO and BUO. __________________________________________________________________________

CHE contains data used by the non-local pre-translator to access drum table CPD via a 1, 2 or 3 digit translation. CPD in turn contains data used to instruct the register sender to collect more digit or to standardized a non-standard digit pattern. The table consists of three words, with a bias of 0 so that they fall in words 0-2 shown in FIG. 8. __________________________________________________________________________ Word CHEW.phi..phi. in entry word .phi. XD6 .phi.-3 Sixth called number digit - obtained from FWBXD 6 XD5 4-7 Fifth " " 5 XD4 8-11 Fourth " " 4 XD3 12-15 Third " " 3 XD2 16-19 Second " " 2 XD1 20-23 First " " 1 X13 12-23 Consists of XD1, XD2 and XD3 - Part of the search key used to access table CPD. See CHESID. X23 12-19 Consists of XD2 and XD3 CD1 .phi.-23 Consists of XD1-XD6. Word CHEW.phi.1 in entry word 1 FTP .phi.-1 Fast time out digit position TIP 2-3 Translation interrupt digit position Specifies the digit position CHEXD1, XD2 or XD3 in the search key the FWBIDC value is to be placed when a TRI=1 inter- rupt has occurred and CHESID=1. UID .phi.-3 Use incoming digit counter. Specifies the digit position CHEXD1, XD2 or XD3 in the search key the FWBIDC value is table placed if CHESIO-1. SID 20 Search on incoming digit counter. Indicates whether or not to place the FWBIDC value in the digit portion of the search key. Part of the search key used for the table CPD. Word CHEW.phi.2 in entry word 2 AUI .phi.-4 A unit inlet AUN 5-8 A unit ABG 9-11 AB group MTX 12-15 Matrix SEC 16-17 Section LNI .phi.-17 Consists of AUI, AUN, ABG, MTX, SEC. __________________________________________________________________________

Group CHG is used to store code translation data from work area CXD which defines the routing information necessary to terminate a call. The table consists of four words with a bias of 0 so that they fall in words 0-3 as shown in FIG. 9. ______________________________________ Word CHGW.phi..phi. in entry word .phi. RTN .phi.-11 Route number CTTRTN TTN 12-15 Traffic type number CTTTTT TSR 16 Tandem selective routing CTTTSR LSR 17 Local selective routing CTTLSR RPV 18-19 Route plan value CTTRPV CDR 20 Coin deposit required CTTCDR DNT 21 Directory number translation CTTDNT Word CHGW.phi.1 in entry word 1 NJR .phi.-3 Next job to run CTTNJR CID 4-8 Code identification CTTCID AOS 9 Allowed on six CTTAOS EOP 10 Early outpulsing CTTEOP ECP 11 Elacs code protection CTTECP STR 12-14 Separate toll routing CTTSTR ZNC 17-19 Zone of charge CTTZNC ZTS 20-22 Tandem screening zone CTTZTS Word CHGW.phi.2 in entry word 2 OSV .phi.-3 Outpulsing start value CTTOSV FTO 4-7 Fast time out CTTFTO XTL 8-11 Totals CTTXTL Word CHGW.phi.3 in entry word 3 PJR .phi.-3 Previous job run by digit analysis OJR 4-7 Old job run. Used for ambiguous code processing. TAT 8 Translation action taken. ______________________________________

Group CHH is used to store routing information which may be used to retrace a call. CHH consists of one entry type format (format A) and a general format (format B). Table CHH consists of six words falling in words 0, 2, 4, 5, 6 and 7, shown in FIGS. 10, 11 and 12. __________________________________________________________________________ Word CHHW.phi..phi. in entry word .phi. RTN .phi.-11 Route number being processed if a route number or alternate route number translation was the last translation performed. (CHHDNX=.phi.) Word CHHW.phi.1 in entry word 2 SU1 .phi.-3 Selector units of the first loop through FWCSUT-A the selector matrix SN1 4-7 Selector tens of the first loop FWCSTN-A ST1 .phi.-7 Comprises SUI and SNI. Word CHHW.phi.2 in entry word 4 SU3 16-19 Selector units of the third loop FWCSUT-A SN3 20-23 Selector tens of the third loop FWCSTN-A ST3 16-23 Comprises SU3 and SN3. Word CHHW.phi.3 in entry word 5 SU2 .phi.-3 Selector units of the second loop FWCSUT-a SN2 4-7 Selector tens of the second loop FWCSTN-A ST2 .phi.-7 Comprises SU2 and SN2. Word CHHW.phi.4 in entry word 6 SAI .phi.-2 Selector matrix A inlet FWCSAI-A SAU 3-6 " A unit FWCSAU-A SAB 7-9 " AB group FWCSAB-A SMX 10-13 " SGI .phi.-13 Comprises SAI, SAU, SAB, SMX. Word CHHW.phi.5 in entry word 7 ARN .phi.-11 Alternate route number if route number CRNARN being processed cannot be terminated and CHHARI=1. LXT 13 Line matrix termination if = .phi.. or selector matrix if = 1. ART 14 Alternate route translation was last translation performed. REP 15 Previous route early outpulsing ARI 16 Alternate route exists, in CHHARN RTL 17 Retrial DAT 18 Delayed alternate route translation __________________________________________________________________________

Group CHL is for ticketing information, including the normalized called number, the calling director number, and the ticketing scan point. See FIG. 11. ______________________________________ Word CHLW.phi..phi. in entry word .phi. TCT 14-18 Terminating call type FNA 19 Foreign numbering area CL2 20-23 Calling directory number 7th digit NO7 20-23 " Word CHLW.phi.1 in entry word 1 CL1 0-23 Calling directory number first six digits NO6-NO1. Also Cl4 for 6th-3rd digits, and for 2nd and 1st digits. Word CHLW.phi.2 in entry word 2 CD2 8-23 Called number 7th-10th digits comprising XD10-XD7. Word CHLW.phi.3 in entry word 3 CD1 0-23 Called digits XD6-XD1 Word CHLW.phi.4 in entry word 6 TSG 15-22 Ticketing scanpoint comprising TSY and TSX. Word CHLW.phi.5 in entry word 7 TSB 19-23 Ticketing scanpoint - 3rd field. ______________________________________

Group CHM is used by maintenance to store data which is to be used by call processing modules C32. This data indicates to C32 whether or not to take a sender/receiver and/or register junctor off line. The table consists of one word with a bias of 4 so that it falls in word four. ______________________________________ Word CHMW.phi..phi. in entry word 4 SRS 22 Maintenance - takes sender/receiver off line RJS 23 " register junctor " ______________________________________

Table CHQ is used to store the program generated indicators which are generated by call processing programs during the processing of a call for use later on in the processing of the call. The table consists of four words with a bias of 8 so that they fall in words 8-11. ______________________________________ Word CHOW.phi..phi. in entry word 8 TMF 21-23 Time frame field. The value of which provides the means to identify the relative progression of the call through the call processing program and thus indicates how the data and the call table shall be interpreted. The value TMF = .phi. for time frame .phi. of FIG. 6, during which program modules F32 and C.phi.1 are run. The value TMD = 1, FIG. 7., has programs F51, C.phi.2, C.phi.3, C.phi.6, C.phi.7 and C.phi.9. The value TMF = 2, FIG. 8, is the time during which program modules F51, C.phi.4, and C.phi.5 are run. The programs that are run during time frame TMF = 3, FIG. 9, are C.phi.7, C.phi.8, C10, C12, C13 and C15A. The programs that are run during time frame TMF = 4, FIG. 10, are C14, C15B, C16, C17, C19, C20, C21 and C24. The programs that are run during time frame TMF = 4, FIG. 11, are C24, C26, and retrial programs. Program C26 sets TMF = 6 before instructing the register sender to clear its memory. Time frame 6 is the register junctor idle time frame and is succeeded by time frame .phi. when the register junctor beings to process a new call. Word CHOW.phi.1 in entry word 9 TIE .phi.-3 Translation instruction expected, contains the value of the translation instruction which is expected from the register sender during a TRI interrupt. The definitions of the various values of TRI are given in the REGISTER/SENDER patent application. TOV 4-7 Index of table FTT for program to run in case of fast interdigital time out. LWA 8-11 Leave word area. An index for accessing entries in table FTE for program to be run for an expected register-sender interrupt. IPS 12 Inhibit program scheduling WAL 13 Work area linked. Indicates that a work area is associated with the register junctor and is to be used when scheduling a program as a result of an RS interrupt. TST 14 Maintenance is using the RJ ROL 15 Off line RJ. RJB 16 Busy RJ ADR 17 Indicates no more digits expected. RSA 18 Sender/receiver assigned to call. TRS 19 Unused. CRJ 20 Maintenance is attempting to clear the RJ. DNP 21 Used by C32 to clear if no job is scheduled. ABC 22 Abort the call. EOP 23 Early outpulsing. Word CHOW.phi.2 in entry word 10 DNR 5 Directory number retrieved. SBM 6 Switch bit for maintenance used in C19. TPI 8-9 Type of print out RCC 10 Revertive call VPD 11-12 Value of prefix digit dialed RTO 13-14 Recorded time out LPI 15 Loop pulled in selector PGI 5-15 Comprises DNR, SBM, TPI, RCC, VPD, RTO and LPI T(No.) 20 Traffic service observation for ticketing TSS 21 Traffic sampling - ticketing MRR 22 Message rate service CHA 23 The call is chargeable TKR 20-23 Comprises TSO, TSS, MRR and CHA Word CHOW.phi.3 in entry word 11 PDL 3-5 Number of called digits previously deleted - used to restore deleted digits for alternate routing OJT 22 Originating junctor translation NCB 23 New call bit, used by CCR handler only gradual transition is in effect to indicate use of a specific copy of drum memory. ______________________________________

Group CHT is a table which contains general information about a call and its status while it is being processed. It consists of twelve words.

Group CJA is used to store the originating class-of-service data for a line or trunk which has originated. This information is obtained from a drum table CLN or drum table CTN, depending on whether the origination is a line or a trunk, and is placed in CJA. Group CJA is accessed via the address assigned by the executive. The table consists of two entry formats. Format type A is for trunk originations and format type B is for line originations. There is also a general format, format type C. The table consists of four words, with a bias of three so that it falls in words 3, 4, 5 and 6. ______________________________________ Word CJAW.phi..phi. in entry word 3 AUN 0-3 A unit identified during origination CLNAUN ABG 4-6 AB group " CLNABG MTX 7-10 Matrix " CLNMTX SEC 11-12 Section " SBS 13-14 Subsection " CTMSBS Word CJAW.phi.1 in entry word 4 TGI .phi.-7 Trunk group incoming OSN 8-10 Originating service number ACO 11 Annoyance call originating TCN 12-13 Terminating control DS1 14 Disconnect status 1 DS2 15 Disconnect status 2 PDG 17-21 Published directory number billing group DN1 18-22 Directory number 1 location Word CJAW.phi.2 in entry word 5 RCI .phi.-4 Receiving control index SCA 6 Special code allowed ZCL 7-9 Zone associated with class of service. FWS 10 Foreign WATS state MRS 11 Message rate service MRT 12-17 Modified routing type IDC 18-21 Incoming digit count INT 18-22 Intest circuit identity DN2 18-22 Directory number 2 location Word CJAW.phi.3 in entry word 6 SAI .phi.-2 Selector A inlet SAU 3-6 " A unit SAB 7-9 " AB group SMX 10-13 " Matrix SGI .phi.-3 Comprises SAI, SAU, SAB and SMX TXS 14-15 Trunk matrix section ETN 16-18 Equipment type and number MTP 19-21 Manual Test panel PTS 22 Pretranslator standardization required ______________________________________

FIELD PROGRAM DESCRIPTION

General

this section describes the "Field Program," the name given to the collection of programs that make up the software system. The purposes of this section are to:

1. Identify the generic programs that make up the software system.

2. Describe the functions each program performs in the system.

Field program

the Field Program is divided into five major divisions. They are:

a. Executive program.

b. Application programs.

c. Maintenance programs.

d. Data Base.

e. Debugging Technique program.

The executive program provides centralized supervision over the operation of the data processor unit hardware, and control of the execution of the maintenance and application program software. The application programs are responsible for providing the operational characteristics of the system; e.g., call processing, ticketing, metering, etc.

The maintenance programs provide system and subsystem level maintenance functions; reconfiguration, scheduling of subsystem diagnostic programs, special handling of interrupts that occur during diagnostic operations, etc. The data base contains all of the table data that is stored in the system by means of the data processor unit's ferrite core and magnetic drum memories. The debugging techniques program is used to locate troubles within the software programs.

Refer to FIG. 13 for a block diagram of the field program flowchart.

Executive program

the executive program is responsible for the scheduling of application and maintenance programs. The executive program's major objective is to provide an orderly and efficient means of utilizing system hardware for these programs. The executive program provides the following major system functions:

a. Scheduling of central processor time on a priority basis.

b. Distributing interrupts to the appropriate interrupt processors.

c. Providing for the detection and handling of level two traps.

d. Scheduling and handling input/output device operations.

e. Providing the ability to time programs and events.

Central Processor Control

Both central processor time and the used non-resident areas in core main memory are scheduled by the executive program. The allocation of central processor unit time is accomplished by eight level priority scheduling for the system software.

The eight levels are referred to as levels zero through seven. Priority level zero is the highest level and level seven is the lowest. The executive will attempt to service all central processor time requests for programs waiting in priority zero before handling priority one requests. Similarly, priority one requests will be handled before those on priority level two, etc. Any one of the eight priority levels may be used to request execution of core and drum resident programs. Since only one program can be running at any instant, the eight levels provide the executive with the program priorities needed to properly schedule their processing. For example, "catastrophic situation processing" programs are given the highest level priority (level 0), and "routining maintenance" programs are given the lowest priority (levels 5, 6, and 7). Call processing, ticketing, and metering programs are scheduled on levels 3 and 4.

The data processor unit scheduler module is part of the executive program. Its function, as previously mentioned, is to schedule other program modules on a priority basis. If the program selected to run is core resident, it is merely started. If the selected program is drum resident, it must first be brought into core memory before execution can start. There is only one area available in core for the execution of drum resident programs. This area is called the "non-resident area" (NRA). The NRA consists of 2048 locations of core storage.

Interrupt and Trap Control

Processing interrupts received by the computer complex is a function accomplished by the executive program through the use of its interrupt processor modules. These modules analyze the cause of an interrupt and initiate the appropriate software action.

There are eight hardware priority interrupt levels associated with the computer central processor. These eight interrupt levels are of a higher priority than the executive's eight software priority levels. This means that the lowest hardware priority interrupt level is higher than the highest software priority level.

In addition to the interrupt system there are two levels of hardware traps, the traps are of a higher priority than the interrupt levels. These hardware priority trap levels provide for a "third party trap" (Level one), and a "central processor errors trap" (Level two). The executive only "controls" trap level two. The activation of any traps immediately suspends the running of the current program. If this occurs, the trap program modules are initiated and run before resuming execution of the suspended program.

I/o device Control

The executive program also has control of the following input/output devices:

a. High speed paper tape punch and reader.

b. Teletypewriters.

c. Marker communications registers.

d. Magnetic drums.

e. Magnetic tape units.

f. Maintenance and control center.

The executive schedules the input/output devices so that they may be used with maximum efficiency. It performs all actions required to operate the various input/output devices, thereby releasing the application programs, etc., from the necessity of having to perform these functions.

The executive interprets input messages from the teletypewriters and schedules the correct program module, as determined by the message control routine. The output data is made available in specific formats with headers as required.

Timing Control

The executive maintains a real time clock which keeps track of seconds, minutes, hours, days of the month, and months of the year. The clock is normally read by an applications program when it requires the date and time of day. Also provided, is an interval timer which provides timing functions required by some application programs.

The application program timing requests are timed by the interval timer module in multiples of 16.67ms. For example, if a program is run every minute, it will be called when a total of 3620 time intervals have elapsed. (3620 .times. 16.67 ms. = approximately 60 sec.)

Call processing program

the call processing program controls hardware and analyzes data to enable the system to perform its primary function which is to process calls. The modules of the call processing program analyze the data received from the markers and the register-sender subsystems.

Origination and Digit Reception

Data is transferred between the markers, data processor unit, and the register-sender subsystems. These subsystems are directed to perform their functions of interfacing with the network and completing the call via the call processing program. The primary call processing modules that process an origination and prepare the register-sender to receive digits are referred to as follows:

a. Class of service initialization.

b. Class of service analysis.

c. Non-dial line store.

The class of service initialization module performs the task of obtaining a work area (spaces reserved in core memory) from the executive program. Also, parameters are collected so that a class of service drum translation for the originating line or trunk may be made.

The originating class of service analysis module obtains the class of service drum translation information, analyzes it, and writes it into the register-sender core memory. The information received from the drum translation is analyzed and the program determines if a DTMF or MF receiver must be connected in order to receive digits. Additional class of service information is obtained from core tables and is then written into register-sender core memory by the executive program as directed by the call processing class of service analysis module.

The non-dial line store module formats the non-dial line digits retrieved from drum storage so that they may be written into the register-sender memory. This module updates register-sender memory with the formatted digits and instructs the register-sender to examine its memory for these digits

Digit Analysis

The call processing program modules primarily responsible for analyzing data supplied by the customer for determining the call's destination are the following:

a. Pattern recognition handler.

b. Local and non-local pretranslators.

c. Digit translation initialization.

d. Digit translation analyzer.

The pattern recognition handler module is used when the register-sender has recognized certain dialed digit patterns. Specifically, the module initiates the routing of the call to an operator when a single zero has been dialed in an office not arranged for 0+ dialing. It also decreases the digits totals field of the register-sender core memory, upon recognition of 1+ dialing in an office so arranged.

The non-local pretranslator is scheduled by the call processing program when the origination is from a foreign office. The pretranslator is designed to add and/or delete digits as required. For example, if the call is from a direct control office to a local termination in this office, up to three (office code) digits may have to be added.

The translation portion of call processing begins with a local pretranslation of the incoming digits. The local pretranslator first determines if a "1" or a "0" prefix digit has been dialed. If so, the digit is deleted from register-sender core memory. Indicators (bits set in core) are then set to indicate that a prefix digit was dialed and what its value was (one or zero). If the register-sender has not accumulated three digits (excluding the 1+ or 0+ prefix digits), the digits total field in register-sender memory is updated to a value of three. This indicates to the register-sender that three digits are to be collected before a translation can be performed.

Digit translation initialization takes place and first initiates a three, then a four, five or six digit translation if required. The type of translation initiated will depend on the call destination which is usually apparent with the first three digits received.

The digit translation analyzer is responsible for deleting certain three digit prefix codes such as those associated with ticketing codes, reverting call access codes, and home numbering plan area codes and determining whether translations other than the normal three digit translation are required.

Routing

The routing function is controlled by a route translation initialization module which initiates the correct drum translation so that all of the information needed for the termination of a call is available.

A directory number translation is usually initiated if the call terminates locally, and a route number translation is usually performed if the termination is to a foreign office. A selective routing translation will be made in cases indicated by the originating route type attached to the originators class of service and by the prefix digits dialed.

Termination

The terminating cycle of call processing involves five major modules to accomplish the task; they are referred to as follows:

a. Route number and directory number translation analyzer.

b. Selector matrix routing.

c. Sender-receiver assigner.

d. Sending patterns and format control.

e. Termination cycle.

The route and directory number translation analyzer provides a preliminary analysis of data taken from drum after a route number or directory number translation. This module makes the following route checks:

a. Route for a permanent signal trunk.

b. Route for reorder tone or line busy tone application.

c. Route for intercept.

d. Alternate route indicators to access the alternate route control module.

The selector matrix routine module provides a means to determine the routing from a selector group inlet to a selector group outlet based on the type or types of equipment required to complete the call.

The sender-receiver assigner maintains a check on the busy-idle status of senders and receivers. It also maintains a check of the on-line/off-line status of senders and receivers. The sender-receiver assigner provides a map which shows the assignment of all senders and receivers to register junctors.

The sending pattern and format control module prepares the called number, calling number, and prefix digit storage cells to meet the sending pattern requirements of the receiving office. The register-sender memory is prepared by loading in register-sender memory the sending data contained in the route number expansion table. This module also gives the sending control information from the route number expansion table to register-sender.

The termination cycle acquires terminating information for the register-sender and the terminating marker. The terminating marker uses this information to connect a terminating path through the network. The register-sender uses this information for timing the termination process.

The termination cycle module determines most of the terminating requirements for the terminating marker and the register-sender. More specifically it accomplishes the following:

a. Readies the routing and control information to be used by the terminating marker and the data processor unit's communication register.

b. Acquires the calling directory number and determines if sending is required.

c. Schedules the succeeding call processing modules, if required.

Alternate Routing

The alternate route control module is called for whenever an alternate route termination is being processed. The primary purpose of the module is the determination of whether the conditions set up by the preceeding termination attempt require any modification.

To meet the requirements of an office, several types of alternate routing are provided. The types provided are as follows:

a. Route number alternate routing for lines or trunks.

b. Alternate routing for PBX lines.

c. Trunk group alternate routing for trunk groups with an availability greater than 80 (maximum scanning capability per group) and sequential selection of groups.

d. Alternate routing for oversize trunk groups providing a balance by random selection of one of two trunk groups for even traffic distribution.

Ticketing program

the primary purpose of the ticketing program is the collection, formating, and recording of toll data for future processing. The ticketing program consists of 16 modules to perform the necessary ticketing functions. The software operates in conjunction with the automatic toll ticketing subsystem hardware to provide ticketing data for Local Automatic Message Accounting (LAMA) operation.

The ticketing subsystem tickets subscriber dialed automatic number identification traffic. It tickets direct distance dialed (DDD) toll traffic as "timed" calls while ticketing message rate service (MRS) local traffic as "pegged" calls (calls recorded for answer only, not timed). Only calls originating within the local office are ticketed.

Ddd call

The brief description that follows illustrates the way in which the ticketing software handles a DDD call.

When a DDD call is originated, the call processing program determines the identity of the trunk that was seized. At this point, the call processing program stores the identity of the seized trunk for this call, and transfers control to the ticketing seizure module.

The seizure module checks the activity bit table to assure that the associated trunk activity bit is 0. This (activity bit 0) will inhibit the scanner from looking at the trunk supervisory contacts during outpulsing. Control is then returned to the call processing program.

If the last call of this trunk was incomplete, the activity bit will still be a 1 when checked by the seizure module. In this case, the seizure module would reset the activity bit to 0 and schedule the recording of the "incomplete call" information on magnetic tape (if traffic observation is being conducted).

Assuming a normal call, after cut-through (register-sender outpulsing completed) has occurred, the call processing program passes the equipment number of the trunk, the called number, and the calling number to the ticketing call completion module. The call completion module formats this information, and schedules its writing in a table on the drum. The call completion routine then sets an indicator causing the scan interrupt routine to begin interrogating this trunk for an answer condition. At this point the call completion module returns control to the call processing program.

The scan interrupt handler interrogates the trunk for an answer condition until an answer condition is found. When answer is first detected, the scan interrupt routine begins timing a 2.4 second charge delay interval. If the answer state remains true for the 2.4 second interval, the time of answer is recorded and is scheduled to be written into the drum cell associated with this trunk.

The scan interrupt handler continues to interrogate the trunk, looking for a disconnect condition. If a false disconnect is detected (called party on-hook, calling party off-hook), the disconnect time is stored in a table on drum and the associated trunk bit is set in the disconnect recorded table. The scanner will continue monitoring the trunk for as long as the calling party remains off-hook. If, while the calling party is still off-hook, the called party again goes off-hook, the trunk bit in the disconnect recorded table will be reset (0). This nullifies the disconnect time previously recorded. The scanner always continues its supervision until both parties have gone on-hook, indicating a true disconnect. When a true disconnect occurs, a request is generated to move the call data associated with the trunk from the drum cell to a work area in the computer core main memory. The scan interrupt handler also requests the scheduling of the output format module, after the call record has been read off of the drum.

The output format module is responsible for arranging call data into a useable format for magnetic tape output. On completion of its assigned task, it indicates that the call record buffer format module should be scheduled.

The call record buffer format module is responsible for moving the formatted call record into a buffer work area, determining where the call data should be stored, and when the buffer becomes full, indicating to the magnetic tape 1/0 scheduler that the buffer contents should be outputted on magnetic tape.

Mrs call

An MRS (message rate service) call is handled in a fashion similar to that of the DDD call, except that those operations necessary to time the call and detect disconnect conditions are not used. The MRS calls are recorded when the scanner detects a true answer condition. The record contains the calling number and the answer time.

Miscellaneous Functions

In addition to its normal recording tasks, the ticketing program also provides instructions for checking certain hardware malfunctions. The ticketing program provides for detecting trunks with scan contacts that remained in an open or closed state for more than a 24 hour period. It also provides for detection of any trunk on which a call was in progress for more than 1 hour. Such malfunctions are identified by TTY output messages.

Metering program

the metering program provides a means to measure traffic density through the office. Also measured is the application of reorder tone when such application is due to a system malfunction. The various metering modules are driven by the call processing and executive programs.

The metering program provides the following types of metering:

a. Overflow metering.

b. Call routing metering.

c. Call event metering.

d. Grade of service metering.

e. Reorder tone application metering.

Overflow Metering

Overflow metering measures the number of times a line busy condition exists from a selected group of local directory numbers. The count is taken each time a call termination attempt is made to one of these numbers.

Call Routing Metering

This function provides a count of the number of times specified traffic originations have been connected to specific traffic terminations. Lines and/or trunks may be counted.

Call Event Metering

The purpose of this metering is to count the number of times a given set of conditions occurs in the processing of a call through the system. The call event metering is driven by various call processing modules. Some of the events counted are:

a. Blocked call in the line matrix.

b. Call blocked by all register junctors busy.

c. Successful connection to register junctors.

d. Blocked calls in the selector group matrix.

Grade of Service Metering

Grade of service metering or, dial office administration, counts the ability of the system to switch calls through the network. A count is made of calls blocked in the switching matrices caused by all AB links busy. The grade of service metering module interfaces with the call processing program to acquire information necessary to perform this metering function.

Reorder Tone Application Metering

This metering function counts the number of times reorder tone is applied when caused by a system malfunction. The reorder tone metering function is driven by the call processing software so that various fault conditions resulting in reorder tone application initiate the count.

Input-Output Devices

The normal output of the metering program is via the high speed paper tape punch. The administrative teletypewriter may be used to output metering messages in response to an appropriate input request. The metering modules that require input parameters receive them via the high speed paper tape reader.

Maintenance program

the overall maintenance program consists of two major sections, having the capability of performing maintenance operations on the system and/or subsystem level. The maintenance program is composed of program modules and tables which are stored both in core and on drum.

This extensive maintenance software system is necessary to insure that the No. 1 EAX system meets its design goal of a maximum downtime of 1.5 hours in a 30 year period. The maintenance software needed to accomplish this goal makes up approximately 65% of the total software package.

That group of modules concerned with the overall control and service of system level maintenance functions is called common maintenance. Common maintenance programs have functions useful to most subsystem diagnostic programs but are not peculiar to any specific one. They provide centralized control to minimize interference among subsystem diagnostic functions.

The subsystem diagnostic program modules allow the hardware system to operate in the presence of faults and errors. They provide the following functions:

a. Malfunction detection.

b. Fault isolation (of a faulty unit).

c. Malfunction recovery and restart (after disturbances due to diagnostic testing or repairs).

d. Fault localization (to a location within a few circuit boards).

e. Repair verification (checking a "repaired" unit before placing it in service).

f. Routining (testing the capability of a subsystem or unit to perform certain tasks).

Common Maintenance

The major functions of the common maintenance are as follows:

a. Scheduling of subsystem diagnostics.

b. Reconfiguration of the system or subsystem.

c. Audits.

d. Power monitor scan of power failure detectors.

e. Central control of error counters.

f. Display lamp control.

g. Special analysis of TTY input messages.

The common maintenance programs have the capability of interfacing with each other and to the diagnostic subsystem programs. These common maintenance programs also interface with the executive program and the maintenance personnel in the office.

The common maintenance programs interface with each other and the subsystem maintenance programs via the normal interfaces of the executive, and the diagnostic control program (DIACON). When maintenance programs call DIACON (a common maintenance module) it will schedule these programs via the executive. DIACON uses a special indicator attached to the front of each of the executive's queues that permits control to be transferred from the executive to DIACON. This enables DIACON to gain control without the requirement of first having a work area. After DIACON receives control, it acquires a work area and schedules the requested program by using the executive's scheduler module.

The interface with the maintenance personnel is accomplished via requests from the MCC controls, TTY input messages, etc. This interface causes various common maintenance programs to be scheduled and effectively gives the maintenance man control of the system.

Part of the common maintenance software is a configuration control program (CONFIG) that exercises control over system status and configuration. This program performs the following major functions:

a. It receives requests for configuration changes. The requests come via TTY input, MCC pushbutton demands, diagnostic software, and power monitor scan software.

b. It determines if a configuration change can be made without affecting system availability.

c. It maintains a record of current system status in the system status table.

d. It performs all legal configuration changes that are requested, or calls the appropriate program to effect the change.

e. It provides for the appropriate TTY output which contains the configuration change information.

The maintenance interrupt and access program (MANIAC) and its associated tables provide centralized control over special processing of interrupts. This requirement is necessary because, during diagnostic functions, inadvertent or deliberate interrupts may occur. These interrupts must not be allowed to affect normal processing, therefore, the MANIAC program is used to provide the maintenance feature of allowing these interrupts to have special handling.

The system clear and start program (SYSCLR) provides centralized control for initializing or re-initializing the system/subsystem(s). The SYSCLR program is used initially (at cutover) to place the system into operation. It is also used to re-initialize the system on demand, and to recover the system (or subsystems) from malfunctions for which there are no other means of recovery and then return the system to normal processing.

The "audit" programs perform checks on significant software area. The following are the areas checked:

a. The specially protected areas of read only core memory.

b. The linking of work areas to queues, call history tables, and hitching posts. (Hitching posts are one entry queues reserved for a particular system function.) All lost work areas will be returned to the appropriate size spare work area queue.

c. The MF sender and MF receiver assignment tables to compare the on-line/off-line, busy/idle software status to the actual hardware status.

d. The MANIAC tables to insure that they are being correctly used by the programs accessing them.

e. The system status table to insure that all data within the table is correct and that no illegal entries have been made.

f. The call history tables to verify that the software indication of each register junctor's off-line and busy status is consistent with its actual hardware status. The audit programs also perform the following two timing checks:

a. The non-resident area audit of core memory to insure that a program does not maintain continuous control of the NRA. This software "time-out" feature allows a program to only occupy the NRA for a certain predetermined time. If this time is exceeded and certain other conditions are met, the system clear and start program will be called.

b. The input/output handler time-out audit to provide a software time-out check for each 1/0 device. This time-out check is required so that an 1/0 device does not hold up normal processing. If a device does not respond within a predetermined time, the appropriate 1/0 handler abort program is notified.

The power monitor scan program (PMSCAN) is used to reconfigure the system around any power failure that may occur. PMSCAN monitors the output lines from the office power alarm circuits via the power monitor adapter to ensure that all power conditions are reported to the system. If a power fault is detected in a particular unit, that unit is placed off-line by the configuration control program (CONFIG). CONFIG will update the system status table so that it will represent the current status of all units in the system.

The error count program (ERRCNT) provides centralized control over incrementing, reading out, or resetting of certain software counters. These "error" counters are used for reasons other than error counting. ERRCNT provides the requesting program with the ability of having their respective counters reset, read and printed out via TTY, or incremented and printed out via TTY upon overflow.

The lamplighter program (LMPLTR) provides software control over the lighting and extinguishing of the lamps associated with the maintenance display adapter of the maintenance display adapter of the maintenance control center (MCC). LMPLTR maintains the status of these lamps in a table in core memory. When a lamp is to be turned on or off, LMPLTR calls the MCC 1/0 handler program to perform this function. When a certain predetermined number of work area overload lamps are lit, the work area audit program (WARAUD) is scheduled via DIACON. WARAUD may call the system clear and start program under certain work area overload conditions.

The configuration pushbutton handler program (CNFPBH) provides the maintenance personnel with the capability of requesting reconfiguration of any of the subsystems from the maintenance and control center. Activating the applicable MCC pushbuttons will accomplish the reconfiguration via CONFIG. The CONFIG program will insure that both units of a pair are not taken out of service.

Subsystem Maintenance

The subsystem diagnostic programs that handle the faults and errors that occur in the system, and which permit the system to function in spite of these malfunctions are as follows:

a. Processor configuration group (PCG) diagnostic program.

b. Register-sender diagnostic program.

c. Markers and network diagnostic program.

d. Drum memory system diagnostic program.

e. 1/0 peripheral apparatus diagnostic programs.

f. Space divided equipment routining program.

In addition to the primary subsystem maintenance programs (malfunction detection, fault isolation, etc.) there are the routining and auditing programs. The malfunction detection, fault isolation, and fault recovery programs are handled quickly because call processing is inhibited during their execution. All the other subsystem maintenance programs are deferrable and are normally run intermixed with the call processing programs.

The malfunction detection programs respond to hardware detectors and provide for separation of faults and or errors, routining of seldomly used circuits, routining of malfunction detectors, and routining of space divided equipment. The fault isolation programs are used to determine which one of a pair of redundant units is faulty and to separate (isolate) the faulty unit from the rest of the system.

The malfunction recovery and restart program will return the hardware/software to normal operation after disturbances due to diagnostic testing or repairs. Fault localization programs are used to narrow down the location of the fault to a few circuit boards and provide a trouble report printout on the maintenance teletypewriter. The repair verification programs utilize combined diagnostic processes and are executed before returning a "repaired" unit to service.

A processor configuration group (PCG), consists of one each of the following computer complex units: central processor (CCP), memory control (CMC), core memory (CMM), and the priority interrupt and sense line circuits of the line processor (CLP). The PCG diagnostic program operates in response to hardware detected malfunctions. These malfunctions are primarily detected by the specially designed hardware of the computer third party circuit (CTP) which is used to insure the matching integrity of the duplexed PCG's.

When a PCG mismatch occurs, an isolation program will determine whether the malfunction was due to a fault or a transient error. The PCG mismatch caused what is known as a third party trap (level one). Both CCP's will be taken off-line, and therefore out of sync, when a level one trap occurs. The isolation program used to determine the fault (if a transient error was not the cause) will run both CCP's independent of one another through a set of the same diagnostic detection programs. These programs exercise all logic elements that could have caused the mismatch. The programs will return periodically with intermediate results to the CTP. A faulty unit is determined if an incorrect result occurs or if a diagnostic program fails to return for a check in either CCP.

The register-sender's isolation modules will also be initiated by a hardware detected malfunction. The synchronized common logic units of the register-sender are compared by special hardware matching circuits to determine the faulty unit. Isolation is accomplished by analysis of data collected at the time of the non-comparison, by a RCC logic simulator (stored in the drum memory system) used as a third party element, or by exercising RS functions under software control. The fault localization software will find the general location of the fault and will then initiate a TTY trouble report output to inform the maintenance man at the MCC. The register-sender diagnostic program also includes special software used for monitoring troubles in space divided apparatus outside of the RS common control equipment (e.g., MF senders and receivers, RJ's, etc.). This special software contains system trouble monitors and busy/idle and configuration status indicators for the space dividied apparatus.

The marker and network malfunctions are detected primarily by hardware contained within the markers. Hardware circuits take the affected marker out of service and an interrupt is generated which will cause the executive program to schedule the appropriate diagnostic program. The localization diagnostics are used to analyze faults in the markers,

The drum memory system diagnostic program operates in response to hardware detected malfunctions and software generated requests. It provides basis malfunction detection of parity checks, special drum timing checks, and special program segment marks. Isolation is performed via task retrys on the duplexed units. The fault localizing software finds the general location of the fault and will provide a TTY trouble report output. The DMS maintenance program also provides for data transfers and comparison checks between drums. Repair verification and routining software is also included in this program.

The I/O peripheral apparatus diagnostic programs are initiated by various hardware detected malfunctions. The I/O maintenance program includes diagnostics on the computer channel multiplexor and its associated controllers (TDB, MDB, CDB, AND CCR). Special diagnostic software is provided for the unique features of the peripherals. This software is used with the automatic peripherals (ticketing scanner unit and magnetic tape unit) and the manual interactive peripherals (teletypewriter, paper tape reader and punch, and the maintenance and control center displays and pushbuttons).

The space divided equipment routining provides test connections to space divided equipment (lines, outgoing trunks, junctors, senders, and receivers) to allow for manual testing. It also provides for automatic routining of this space divided equipment. Another feature of the space divided routining program is to provide for a metallic path for testing via an incoming remote test trunk. Routining requests from remote locations are provided for via a special incoming line.

The manual testing of space divided equipment is accomplished by a testman via controls on the MCC.

The automatic routining of space divided equipment is primarily performed by the maintenance routining logic (MRL) hardware of the MCC and its associated software. During and/or after testing, the MRL sends data (such as test status and test results) to the CCP. The diagnostics performed on the space divided equipment can be initiated by detection of an error, a request via the TTY to perform a specified routine, or the routine may be periodically scheduled by the timed routine scheduler module (L18).

Testing from a remote location (via additional testing equipment) can provide the following features in addition to manual and automatic routining:

a. Initiate single shot and repetitive automatic tests.

b. Initiate requests for system status or configuration reports.

c. Receive teletypewriter printouts of maintenance test data, system status, etc.

d. Perform manual tests on customer lines.

Data base

the data base contains all of the stored table data used by the system such as specific office data, translation data, etc. The data is stored in data processing unit core memory and on the drum memory.

The data base contains all of the stored table data used by the system such as specific office data, translation data, etc. The data is stored in data processing unit core memory and on the drum memory.

Office data is stored in tables and may be core or drum resident. The tables consist of a field or fields of data which are retrieved together and are contained in a single physical table. The following represents the types of data contained within the data base:

a. A series of data tables which contain variable data peculiar to each office (directory numbers, code translations, routing instructions, etc.).

b. Engineerable data concerning hardware configurations (i.e. line and selector matrix grading).

The following represents the type of variable data needed for an office. This type of information is normally supplied by the operating telephone company.

a. Line number identity.

b. Incoming trunk group identity.

c. Terminating classification.

d. Originating routing types.

e. Foreign numbering plan area.

f. Directory numbers.

g. Ringing mode (Frequency and line side).

h. Type of station apparatus (dial or DTMF).

i. Blocking of supervision on answer.

Organization

The data that appears on the drum and in core is arranged in a logical pattern. A drum layout typical arrangement has the drum divided into 18 segments. The core image (a duplication of the information in certain areas of core for reliability reasons) is found in the first 3-1/2 segments. The remaining 3-1/2 segments contain programs. Variable data, such as information pertaining to ticketing, is contained in segment 8. Segments 10 to 18 contain the translation data. A portion of segment 7 and segment 9 are spare areas.

FIG. 4 illustrates a typical organization of core memory. The patch areas shown are used in debugging operations. The constant data, is data that remains unchanged during the life of the program. The parameter data provides input to various programs so they may be properly run. The variable data consists of data that is held temporarily during processing; this information is held in a work area. The drum control unit initialization area contains tables of data that are used to enable transfer of other data between the drum and the core memory and between the core memory and the drum.

System update program

the purpose of the system update program is to allow the permanent data associated with the system to be modified, when required, and to provide a means to add new information to the stored data. Whenever a hardware change is made to an office, usually the data base will require an update; also, the addition of new customer's lines to the office and any changes in service require an update. These changes are accomplished by means of the system update program. The office administration program permits the following changes:

a. Adding new information to the system.

b. Modifying information already in the system.

c. Deleting information in the system.

To make any required modifications or changes to the system, the system update program is activated by an input via the:

a. High speed paper tape reader (HSPTR)

b. Low speed paper tape reader (LSPTR)

c. Office administrative teletypewriter (LOAT)

The system update program consists of 10 modules to accomplish its required task, that is, keeping all stored office information current.

In updating the office, various checks are required on the data supplied, such as limit checks on numeric data and reasonability checks on alphabetic data. Also checked is the quantity of data received to see that it is sufficient to program a successful update.

When the data is loaded into the system (via tape or teletypewriter) for the update, the program initializes this data, or converts it in form, so that it may be interpreted by the program. The data is then checked and analyzed, as mentioned previously, for errors and quantity of information provided.

If new information is being loaded, the program checks to see that the required number of storage locations are available for the data. If it is desired to remove information already in storage, a program module will zero all information existing in the location specified by the update request.

The program is capable of changing information in storage as indicated by the update request. The data is transferred to one drum for both core and drum resident data. A drum-to-drum transfer is then made to equalize the data between drums, and also to equalize the core data.

A punched paper tape of the new data is supplied by a module for office back up purposes. The tape may also be used to remove the update entered, via an input device.

Debugging techniques program

the debugging techniques program provides a means to locate troubles within the software programs. The program is not run automatically, but must be activated by office personnel.

The program has the ability to provide selective dumps of information existing in core, drum, register-sender or sense lines. The information is outputted on the administrative teletypewriter and analyzed to see that the information present is as it should be. Any program, at any point in the program, may be selected for dumping.

The program is enabled by an input set instruction, which specifies what is to be dumped and under what conditions it is to be provided. At specified points in the field program called breakpoints, which are variable and defined by the input instructions, the debugging techniques subprogram checks for the previously mentioned conditions and produces an information dump when the conditions are satisfied. Two types of breakpoints are available, hardware or software.

A computer programming console (PRCF) provides thumbwheel type switches for setting the address of the breakpoints. The hardware will now give control to the debugging techniques subprogram via an interrupt when the instruction at the address specified by the thumbwheel switches is executed. Software breakpoints are inserted into the program by the debugging techniques subprogram; this subprogram gains control when the instruction at the specified address is to be executed. The input set instruction is inputted via the teletypewriter.

EXECUTIVE PROGRAM DESCRIPTION

General

this section described the Executive Program, the program used to provide centralized supervision and control over the operation of the Data Processor Unit (DPU) hardware and over the execution of maintenance and application programs. The Executive Program is a part of the Field Program and is a major portion of the system software.

The purposes of this section are:

1. To identify the generic programs and tables that make up the Executive Program.

2. To describe the major functions of the "executive" and the individual functions of the associated program modules and tables.

Organization

the Executive Program (executive) provides a proper operating environment for execution of the ticketing, metering, and call processing application programs and for the maintenance programs. To accomplish this, the executive schedules the use of the central processor and its associated memory, and utilizes a priority interrupt system for efficient hardware operation.

The executive is used as a means of linking application programs. The executive contains program modules that are used to communicate with input/output (I/O) devices such as the teletypewriters, paper tape devies, magnetic drums, etc. These program modules schedule the operation of the devices and perform various I/0 functions upon requests from the application programs. The I/0 devices associated with the system are shown in FIG. 35 of the SYSTEM application.

Most real time systems have a scheduling routine which looks at the groups of programs waiting in line (in queues) to be run, and decides, according to a priority system, which program will be processed next. This scheduling routine obtains control whenever the program currently running relinquishes its control of the computer. In this system, the program module which performs this function is called the DPU Scheduler (E/1).

A "queue scan" routine is entered whenever an application program ends and the decision of which program to run next has to be made. By interrogating the queues, the queue scan routine determines the application program having the highest software priority, and passes control to this program. The scanning of queues is another function of the DPU Checuler (E01).

The Executive Program consists of a group of modules which exercise software control over the Data Processor Unit and its associated I/0 equipment, and also over execution of the application and maintenance programs. To provide this capability, the executive schedules DPU time, the use of various areas of core memory (work areas), and the processing of interrupt signals from the I/0 devices. These interrupt signals control the introduction of new tasks into the system via the I/0 devices.

The Executives Program modules access various tables in core memory and drum memory. Some of these tables (FIT, FII, FMA, etc. ) are considered part of the executive, while others such as the Call History Table (CHT) and the Program Locator Table (PLT) are accessed by several other programs, and are not considered part of the executive.

Queuing

As part of a basic understanding of the Executive Program scheduling process, a knowledge of queue structure is necessary. The queue structure consists of two parts: the entries in the queue and the queue root. The queue entries are work areas which are assigned to specific programs. Each queue has a unique root associated with it. This queue root consists of a six word table located in computer core memory.

A standard queue root format is shown in FIG. 15. An explanation of the information contained in each queue root word follows:

a. Word 0 (Bits 0-14) contains the address of the first word of the first entry in the queue. If there are no entries in the queue at this time, these bits will be set to zeroes.

b. Word 1 (Bits 0-14) contains the address of the first word of the last entry in the queue. If there are no entries in the queue, these bits indicate the address of the first word of the next queue root.

c. Word 2 (Bits 0-23) contains the number of entries currently remaining in the queue.

d. Word 3 (Bits 0-23) contains the total number of entries that have even been linked to the queue.

e. Word 4 (Bits 0-23) contains the total number of times that entries were linked to the queue after it was emptied.

f. Word 5 (Bits 0-23) contains the maximum number of entries that the current queue length attained.

For this discussion of the operation of the executive, the first three entries are the most important. Words 0 and 1 are used to link the queue root to the first and last entries in the queue. Word 2 represents the number of work area linked to the queue. Words 3 through 5 contain statistics used to determine how well the queue is performing.

FIG. 16 shows how work areas can be linked to each other in a queue. The method of linking uses the least significant fifteen bits of the first word of each entry. The first word of the queue root points to the address of the first entry in the queue, and the first word of the first entry points to the address of the second entry, the second entry points to the third, etc. The last entry, since it has no work area to point to, will contain all zeroes in its first word.

Work Areas

Work areas are sections of computer core memory used for intermediate storage of data during the processing of application programs. These work areas are divided into six sizes, which are 8, 16, 26, 38, 64, and 100 words in length. The quantity provided of each size is determined by the size of the system. Work areas are said to be residing in their "spare queues" when they are not assigned to any particular program.

Before the executive can schedule an application program module to be run, the program must request and obtain a work area. When the work area is assigned to the program, it will remain so until the required task is completed. When it is no longer needed, the work area is released. This action effectively places the work area back into its appropriate spare queue.

When requesting a work area, the caller (requesting program) must specify the proper size. The Executive Program then assigns a work area of the proper size (if available) to the requesting program.

The queue size data is placed in the Work Area Type indicator field of word 0 (FIG. 10). Bits 0-14 of this same word contain the core address of the next program on that priority level to be processed.

Word 1 indicates the next program to schedule and its priority. Word 2 contains the identity of the program presently using the work area. Word 3 contains the indentity and priority of the program to be run in case the program presently using the work area encounters trouble. Word 4 is used to indicate a particular RS pair and RJ identity. Bits 15-20 of word 4 are error indicators related to the various I/0 programs. Word 5 contains the address of the Call History Table entry associated with the RJ specified in word 4.

See FIG. 17, which shows the following fields in the first six words of a work area:

Lkc - linkage control used to link the work areas to queues

Typ - work area type (size) indicator indicating the proper work area queue to which the spare work area is to be returned

Npg - identifies the next program module to be scheduled

Eln - indicates the entry line number of the program specified in bits 0-14

Pri - indicates the absolute priority in which to run the task identified in bits 0-14

Tpf - identifies the program presently using the work area

Tel - indicates the entry line number of the program specified in the TPF field

Fep - identifies the program to be scheduled for forced exits (Error Program)

Fel - indicates the entry line number of the Error Program

Fpr - indicates the absolute priority in which to run the Error Program

Fji - indicates the particular RJ associated with a call (when the work area is used for call processing)

Cht - indicates the address of the entry in the Call History Table associated with a particular RJ

Software Priority Structure

The allocation of central processor (CP) time to various application programs is accomplished by eight software priority levels. These levels are 0 through 7, with level 0 the highest and level 7 the lowest. The executive attempts to service all CP time requests in priority level 0 before servicing those on level 1. Similarly, priority level 1 requests are handled before those on level 2, etc.

Any one of the eight levels of priority may be assigned to a program. Since only one program can be running at any instant, the eight priority levels provide the executive with the ability to schedule the processing of the most important programs first. For example, isolation programs for major system malfunctions are given the highest priority (level 0), and the routining maintenance programs are given the lowest priorities (levels 5, 6, and 7).

Certain guidelines have been formulated to generalize the assignment of programs to specific priority levels. These priority allocations are as follows:

a. Level 0 - castastrophic situation processing.

b. Levels 1 and 2 - general maintenance programs.

c. Levels 3 and 4 - call processing, ticketing, and metering programs. The Watch Dog Timer Manipulator Module (L40) is scheduled on Level 4.

d. Levels 5, 6, and 7 - routining and miscellaneous programs.

Priority Interrupt Levels

There are eight hardware priority interrupt levels associated with the central processor. These eight interrupt levels are of a higher priority than the eight software priority levels. Therefore, the lowest hardware interrupt level is higher than the highest software priority level.

The executive has the ability to identify any interrupt causes and transfer control to modules which service these causes. The eight hardware interrupt levels and their primary causes are listed below:

a. Level 1 - manual input requests from the attention key of the teletypewriters, power failure indications from the voltage monitors and power alarms, status and configuration control panel inputs, CCP/CTP configuration changes, and DDT matches.

b. Level 2 - drum control unit, computer memory control, computer communication register, and ticketing device buffer (TDB) errors; register-sender faults; and originating marker and terminating marker malfunction alarm indicators.

c. Level 3 - timed interrupts from the main and standby real time clocks every 16.67 milliseconds, and ready interrupts from the TDB's.

d. Level 4 - ready interrupts from the computer communication registers.

e. Level 5 - ready interrupts from the drum control units.

f. Level 6 - 1/0 error interrupts from the computer device buffers (CDB's).

h. Level 8 - register-sender error count and system trouble interrupts, general alarm errors (main clock, standby clock, etc.), and computer line processor errors.

The executive controls the cause identification and the processing of multiple simultaneous interrupts that occur, regardless of the interrupt levels involved. The executive provides for returning control to the interrupted program after all interrupt processing is complete.

When an interrupt occurs, the executive Register Stacking Module (F13) saves the contents of the computer central processors index registers (X1, X2, and X3), the contents of the A and Q registers, and that of the four pseudo registers (in core memory). When interrupt processing is completed, the F13 module restores the contents of the registers and returns control to the interrupted program at the calling location plus one.

Traps

In addition to the eight level interrupt system, there are two levels of hardware priority traps. These trap levels have a higher priority than any of the interrupt levels.

The level 1 or third party trap occurs when there is a mismatch between the duplexed central processors or the memory control units during synchronous operation. When a third party trap occurs, the instruction in process is completed, and the active CCP is forced to a dedicated location (address) in main memory. A third party trap program located at this address is used to determine the cause of the trap. The Executive Program does not become involved with third party traps.

Level 2 trap identification and processing is controlled by the Executive Program. Such traps are caused by internal errors that occur in one central processor during simplex operation, or simultaneously in both central processors during synchronous operation. A level 2 trap signal will be generated by one or both CCP's by any of the following:

a. Data even parity error - occurs when even parity (rather than odd) is detected from computer core main memory, the register-sender, or the channel multiplexor.

b. Instruction even parity error - occurs when even parity is detected while reading a new instruction from memory.

c. Division by zero - occurs during a division instruction when the divisor is detected as being all zeros.

d. Invalid operation code - occurs when the decode of the instruction operation field detects one of the following invalid codes: 00, 27, or 63.

e. Memory reference time-out - occurs when one of the memory reference signals (main or register-sender memories) remains true for more than 140 microseconds.

f. Port seven error - occurs when the central processor attempts to access memory out of range, or when it attempts to write into "read only memory".

Note: if, during synchronous operation, an error occurs causing a level 2 trap signal to be generated by only one CCP, the Computer Third Party Circuit (CTP) will generate a third party trap and the level 2 trap signal will be ignored.

Level 2 trap causes (a) and (b) result in a retry of the instruction. Causes (c), (d), (e), and (f), or failure of an (a) and (b) retry, result in a transfer to the System Clear and Start Program.

Program Linkage

The program modules of the executive, and also those modules associated with other programs, contain one or more entry lines. These lines serve as entry points into a program module. They are selected for the various functions they provide. Each module may have a maximum of eight entry lines. Linkage between application programs is via these entry lines and by the use of branch instructions (BUN, BSP, etc.).

The linking mechanism involves two vector tables, the Program Locator Table (PLT), and the Entry Line Locator Table (ELT). PLT is used as a pointer to an address in the ELT associated with the first entry of a specified core resident program.

PLT is also used to locate entry lines for drum resident programs. In such cases, the ELT is actually part of the program rather than a separate table in the core memory. The ELT is located at the beginning of each program read from drum and is referenced by the executive at this location.

When a program is coded, it is not necessary to know whether the program is core or drum resident because linkage from one program to another can be established by using a macro. A macro is a group of instructions which takes the identity of the requested program and its entry line address, and transfers directly to the requested program providing both the requesting and requested programs are core resident. If either program is not core resident the macro schedules the linkage through the DPU Scheduler Module.

FUNCTIONAL DESCRIPTION

This part briefly describes the five major functions of the executive and the major program modules associated with these functions. Some program modules are common to more than one major function such as those that "link" and "unlink" the work areas from the spare queues. Refer to Table EX1 as a reference to the titles of the major executive modules.

The primary objective of the Executive Program is to provide an orderly and efficient means of utilizing system hardware for processing application and maintenance programs. To accomplish this, the executive provides control over the following system functions:

a. Scheduling of central processor time on a priority basis.

b. Distribution of interrupt requests to the appropriate interrupt processors.

c. Detection and handling of level 2 traps.

d. Timing of system programs and events.

e. Scheduling and handling of input/output device operations.

TABLE EX1 ______________________________________ MAJOR EXECUTIVE MODULES GROUPED ACCORDING TO FUNCTION MODULE FUNCTION NUMBER MODULE NAME ______________________________________ E.phi.1 DPU SCHEDULER CENTRAL E.phi.6 QUEUE INTERROGATION PROCESSOR F.phi.2 LINK TO QUEUE CONTROL F.phi.3 UNLINK FROM QUEUE F.phi.4 WORK AREA ASSIGNMENT F.phi.5 WORK AREA RETURN E1.phi. TRAP 2 CAUSE ANALYSIS F13 REGISTER STACKING INTERRUPT F34 OM STANDBY INTERRUPT PROCESSOR AND TRAP E21-28 INTERRUPT CAUSE AND ANALYSIS CONTROL F51 RS INTERRUPT PROCESSOR F52 MARKER MALFUNCTION INTERRUPT HANDLER F58 TTY USE REQUEST INTERRUPT PROCESSOR E2.phi. HOT SENSE LINE FINDER F32B CCR READY INTERRUPT HANDLER E.phi.2 INTERVAL TIMER REQUEST ACCEPTOR E.phi.3 INTERVAL TIMER HANDLER TIMING E.phi.4 INTERVAL TIMER INTERRUPT PROCESSOR CONTROL E.phi.5 REAL TIME CLOCK E.phi.8 REAL TIME CLOCK INITIATE AND UPDATE E.phi.9 MINUTES TIMER F.phi.1 RS TIMING INTERLOCK DRUM INPUT/ F35 MANIPULATOR OUTPUT F29 DRUM SCHEDULER DEVICE F30 DRUM HANDLER CONTROL F40 DRUM HANDLER SUBROUTINE F41 DRUM HANDLER SUBROUTINE E07 BLOCK LOAD/STORE COMPUTER COMMUNICATION REGISTER F31 CCR SCHEDULER F32A CCR HANDLER F36 CCR SUBROUTINE 1 F38 CCR SUBROUTINE 2 F14 CHT ADDRESS CALCULATOR F33 RJ TRANSLATOR F37 CCR ERROR ISOLATION AND RECOVERY F39 CCR LOAD/UNLOAD TTY/PAPER TAPE AND TICKETING EQUIPMENT F.phi.6 INPUT MESSAGE ANALYSIS F.phi.7 OUTPUT FORMAT F.phi.8 RS ACCESS F1.phi. PRINTOUT INHIBIT F22 PAPER TAPE IDENTIFICATION F25 I/O INTERRUPT DISTRIBUTOR F26 I/O SCHEDULER F27 I/O HANDLER F28 TAPE CONTROL F23 HOURLY PRINTOUT F15 INTERNAL TO ASCII F16 PARITY CALCULATOR F17 CHARACTER PACKING AND DELETION F18 CHARACTER UNPACKING F19 ASCII TO INTERNAL F2.phi. NUMERICA CONVERSION F21 COMMON NUMERIC CONVERSION F72 TICKETER SCANNER I/O HANDLER F73 MAGNETIC TAPE SCHEDULER F74 MAGNETIC TAPE HANDLER F.phi.9 MATRIX GROUP IDENTIFICATION F11 INDIVIDUAL MATRIX IDENTIFICATION F6.phi. CHT AUDIT F61 SENDER/RECEIVER AUDIT F7.phi. PRIVILEDGED INSTRUCTION WRITER ______________________________________

Central Processor Control

To fulfill its function of controlling the central processor, the executive schedules the execution of programs within the confines of an eight level software system. It also provides the ability for application programs to schedule other programs.

If a program scheduled to be run is core resident, it is simply started. If the program selected is drum resident, it must be brought into core memory before it can be run. The area of core memory available for the execution of drum resident programs is called the Non-Resident Area (NRA). Because there is only one such area available, a second drum resident program cannot be processed until the one currently being executed is completed, and control of the NRA has been relinquished.

The scheduling philosphy is:

a. Give the most important job in the system to the computer.

b. Once a task is begun, allow it to be completed, (excluding processing interrupt and trap causes).

c. Once the NRA is loaded, place the drum program residing in it into the first position in the highest priority queue (0).

The scheduling duties of the executive are primarily handled by the DPU Scheduler Module (E01) (see FIGS. 52a-52e). There are five major functional sections or entry lines associated with the DPU Scheduler. These entry lines and their applications are as follows:

a. ACCEPT - Schedules program modules that require control to be passed back to the requesting program.

b. RELEAS - This section is used by programs that have completed their processing and want to return control to the central processor so that it can perform other scheduled duties.

c. RESKED - This section is used if a group of modules are scheduled consecutively using the same work area at the same priority. RESKED is also used when a work area overload occurs and it is necessary to reschedule a work area request.

d. RELOAD - This section is used by twopart programs, where both parts are drum resident. It permits the program to be run without being broken. The first part of a two part NRA program is read off the drum, placed into NRA, and executed. When this part has been processed (at priority 0), the second half of the program is scheduled at the same priority, and control of the NRA is retained. This eliminates the possibility of interleaving the parts of several non-resident programs of the same priority.

e. TIME - This section is entered any time a program relinquishes control of the central processor. TIME scans the eight software queues and gives control to a program according to the highest priority. In addition, this entry line is used to schedule drum resident programs to be read into the NRA. TIME calls the Data Manipulator Module (F35) to perform a drum to NRA transfer.

Supplementary program modules are used in conjunction with the DPU Scheduler. These modules perform functions such as linking and unlinking the programs contained in the priority queues. Other modules assign work areas from the spare queues and return them to spare status when they are no longer needed. See FIG. 53.

A work area (WA) is assigned to a requesting program by the Work Area Assignment Module (F04). The work area address is then passed to the DPU Scheduler to be placed into a queue at a specific numeric priority. If the desired size work area is not available in the spare WA queue, a maintenance program lights a WORK AREA OVERFLOW lamp on the maintenance and control console as an indication of a work area overload. The WA assignment program then looks for the next larger size WA. If again, none is available, another overflow lamp lights and this procedure continues until an available WA is found. If there are none available, control is passed to the RESKED entry line of E01, or back to the calling program. This choice is a programming consideration and is determined by the calling program.

If a program is to relinquish control of the central processor, it must pass control to the RELEAS section of the DPU Scheduler. RELEAS then returns the work area to the appropriate spare work area queue using the Work Area Return and the Link to Queue supplementary program modules (F05 and F02, respectively).

If a work area has to be removed from other than the front or the back of a queue, the Queue Interrogation Module (E06) is used. This module (FIG. 20) can locate and/or remove any entry from a specified queue. Since this module functions as a closed subroutine, it always returns control to the calling program.

Interrupt Control

Each of the eight hardware interrupt levels is associated with certain interrupt processors, such as the RS Interrupt Processor (F51), are part of the executive, while others, such as the maintenance interrupt processors, are not.

The Interrupt Cause and Analysis Program (ICAP) modules, E21 through E28, act as an interface between the interrupts and the interrupt processors. The processors schedule the appropriate program to handle the cause of the interrupt.

The ICAP modules receive and process the eight levels of interrupts; module E21 receives level 1 interrupts, E22 receives level 2 interrupts, and so on to E28. FIG. 55 shows a level 1 interrupt (Maintenance Teletypewriter Input Request) being processed by E21. The E21 module stores the address of the interrupted program. The Register Stacking Module (F13) saves the contents of the central processor registers. Its function is to prevent loss of the data contains within the A and Q registers, the index registers (X1, X2, and X3), and the four pseudo registers.

The E21 module obtains the sense group image of the sense lines that cause a level 1 interrupt. It uses closed subroutine E20 (Hot Sense Line Finder) to determine the identity of the "hot" sense line in the group. This sense line identifies the hardware system causing the interrupt (in this case, the maintenance TTY).

ICAP module E21 then calls the Maintenance Interrupt Access Program (MANIAC) to see if the interrupt was caused by a maintenance routining program. If this is the case, MANIAC instructs ICAP to ignore the interrupt since it was not valid, and control is returned to the interrupted program.

Assuming that the interrupt is valid, E21 passes control of the TTY Use Request Interrupt Processor (F58). F58 determines the identity of the TTY making the request, schedules the Input Message Analysis Program (F06) to initiate the I/O operation (via the ACCEPT entry line of E01), and then passes control back to ICAP. The Register Stacking Module restores the registers to their original state and returns to the interrupted program. Before exiting to the requesting program, ICAP resets the interrupt (sense line) that was just processed.

A variety of interrupt processors and handlers are used by ICAP to process the different types of hardware interrupts. In addition, there are various supplimentary modules used to accomplish interrupt processing. These modules are called as closed subroutines and must return control to the calling interrupt processor or handler after performing their required tasks. The processor then returns control to ICAP which passes control to the interrupted program at the point of interruption.

The subroutines used by the interrupt processors must be core resident, as the time required to read them from the drum (8 ms. average) would be too long. In addition, the non-resident area of core may be busy at the time of the interrupt, thus preventing the program from being brought in from drum.

The F32x/3 entry line of the CCR Ready Interrupt Handler Module (F32B) is used when a ready interrupt is generated by the Computer Communication Register (CCR) after two words are received from an Orginating Marker (OM). A CCR ready interrupt (level 4) causes the ICAP module E24 to call F32x/3. FIG. 22 shows a diagram of F32B and its major subroutines.

The CCR Ready Interrupt Handler:

a. determines if the interrupt came from the A or B unit (CCR A or CCR B),

b. determines the work area associated with the interrupt request,

c. determines if the interrupt request was sent successfully,

d. schedules maintenance routines (if necessary) via ACCEPT,

e. determines if the message was received successfully, and

f. determines if the request is for an originating or terminating marker.

The RRJ Translation Module (F33) is used by F32x03 during line or trunk call originations to determine the register junctor handling the call. F33x01 is entered to perform the translation of the data frame sent by the OM to the CCR when a line or trunk call origination occurs. This module translates the line matrix R outlet identity (LRO) for line call originations, or trunk register matrix B outlet identity (TBO) for trunk call originations into the corresponding register junctor identity (RJI).

The Call History Table Address Calculator Module (F14) is called by F32x03 (if the translation by F33 was successful) to calculate the CHT address from the RRJ identity. F32x03 calls F01x01 to access the RRJ slot and will then use ACCEPT to schedule call processing module C01x01 (the first call processing module to be run).

To complete the interrupt handling procedure and to disconnect the CCR from the marker, F32B calls the CCR Handler (F23A). The F32A module returns to F32B when completed and control is then returned to ICAP (E24). ICAP restores the registers and returns control to the interrupted program.

Trap Control

The Executive Program handles only level 2 traps, as shown in FIG. 23. The Trap Two Cause Analysis Module (E10) is the computer's internal error processing program. A level 2 trap is caused by any one of the errors listed under the heading Traps, paragraph on level 2. Recognition of this trap is immediate and the instruction in process is aborted.

The Trap Two Cause Analysis Module (E10) passes control for nearly all trap two causes to the System Clear and Start (L16) maintenance program. For instruction even parity errors (IEPE) and data even parity errors (DEPE), E10 will call the Parity Recovery Program (S30), a maintenance program) to determine if the trap was caused by a transient error. If so, the system will return to normal processing. If the parity error was definitely caused by a fault, the System Clear and Start Program will be called to reinitialize the system. This program is run when any unrecoverable system errors occur.

When System Clear and Start is called, it clears out all sybsystems and places them in an idle state, and clears out all interrupts stored by the central processors. To return the system to normal processing again, the L16 module reinitializes core main memory (CMM), enables the interrupt system, and restores the subsystems to an operational condition.

Timing Control

The information contained in paragraphs below describes the timing control functions of the executive modules. These modules allow the application and maintenance programs to time certain functions, schedule other programs at various time intervals, and be executed themselves at specified time intervals.

Timing control provides the capability of timing various events that are requested to be run at specific times. An example of this is the scheduling of the Non-Resident Area Audit Program (L39), which is run every minute to verify that a program is not improperly occupying the non-resident area of core main memory. The timing control modules provide interval timing and the initiation of requested actions when the intervals elapse. The Interval Timer Request Acceptor Module (E02) accepts timing requests by placing them into a general timer queue. Of the time interval requests in the general timer queue, the first interval in the queue is the one being timed at that particular moment. There is a 40 year software clock in the main memory that provides current time. This clock is initiated at cutover and provides current time which is used as a basis for placing interval timer requests into the general timer queue.

Timing control maintains a software clock called the real time clock. The real time clock (RTC) is used by application and maintenance programs to provide the time of day in hours, minutes, and seconds. It also provides the year, month, day of the month, and day of the week. The Real Time Clock Program Module (E/5) maintains the five counters that comprise the RTC, which is in a binary coded decimal (BCD) format. E05 updates the RTC and resets its counters at the appropriate times (FIG. 58).

A level 3 interrupt is received by ICAP module E23 every 16.67 ms. which causes E23 to call the Interval Timer Interrupt Processor Module (E/4). See FIG. 59. This action provides a standard time interval that is used to produce other intervals required by various timing programs. These intervals are all multiples of 16.67 ms. The following are some of the programs initiated by E/4:

a. The Diagnostic Control (DIACON) Maintenance Program Timer Module (L22X07) every 16.67 ms.

b. The Real Time Clock Program (E05) every second (60 - 16.67 ms. intervals).

c. The Minutes Timer Program (E/9) every minute (3620 - 16.67 ms. intervals).

d. The Non-Resident Area Audit Program (L39) every minute (3620 - 16.67 ms. intervals).

c. The I/O Time-Out Audit Program (L52) every 167 ms. (10 - 16.67 ms. intervals).

f. The Interval Time Handler Program (E03) which is called by E04 at the expiration of a requested time interval (a variable number of 16.67 ms. intervals).

g. The Ticketing Hardware Validation Program (W01) every 2.4 seconds (144 - 16.67 ms. intervals).

In FIG. 25, which shows the primary timing modules, the Interval Timer Interrupt Processor (E04) is shown as the heart of the timing functions. After the required number of 16.67 ms. intervals have elapsed, E04 calls the appropriate program. When E04 has completed its functions, it returns control to E23.

E04 calls the Real Time Clock Program after every 1 second interval has elapsed in order to update the system real time clock. This update is performed to provide the application programs with an accurate indication of the time.

As shown in FIG. 24, the Real Time Clock Module calls the Timed Routine Scheduler (TRS) maintenance program (L18) every hour. One of the modules that the TRS controls is the Hourly Printout Routine (F23). This module permits the time of day and the date to be outputted on both the maintenance and office administration teletypewriters.

The Interval Timer Request Acceptor (E02) is used to place timing requests from application programs into the general timer queue. If a program is to be run at a specified time, it calls E02. This module places the shortest interval requests at the front of the timer queue so that they may be processed first (FIG. 26). If a request is to be placed on the front or rear of the queue, the Link to Queue Module (F02) is used. For any timing requests that are to be placed somewhere between the first and last entries, E02 will not require F02.

If entry line E02X01 is entered, the exit will be back to the caller. If entry line E02X03 was used, the exit will be to the executive's TIME routine. E01X04 will then scan the CPU queues for the next task.

The interval Timer Handler's E03X01 entry line is entered from E04 at the expiration of the general interval timer (FIG. 27). The general interval timer is a counter that can be set to any requested time. For example, if a program is to be run in 2 minutes, the request is placed on the timer queue and when the 2 minute interval has expired, E04 will call E03X01 to handle the request. E03X01 will use F03X01 to remove the entry from the timer queue. This entry indicates to set a specified flag in memory, to transfer control direct to a specified entry line, or to schedule a program by using the ACCEPT entry line of E01. After the requested action has been taken, F05X01 is called to return the work area to the spare queue. E03X01 will then calculate the next interval to be timed. It will also set the timer to idle if no intervals are to be timed.

The E03X02 entry line is called from a program that wants to remove a request for a time interval before that interval has expired. E03X02 uses routine E06X03 to locate the entry to be removed from the timer queue. E06X05 is used to perform the entry removal before timer expiration. The Queue Interrogation Module (E06) is shown in FIG. 20.

Both E03X01 and E03X02 are called as closed subroutines. E04 receives control again after routine E03X01 has completed, and control is returned to the caller of routine E03X02 after the requested entry has been removed from the timer queue. The work area used for a timing request regardless of whether action was taken or the interval was aborted, will be returned to the spare queues by F05X01 (FIG. 19).

A timing function used to provide an interlock when accessing register-sender memory is accomplished by modules F08 and F01 (see FIGS. 28 and 29). F08 (the Register-Sender Access Module) and F01 (the Register-Sender Timing Interlock Module) are used to provide access to RS memory so that accidental alteration of the memory data cannot occur.

The F08 module is called by the call processing programs via entry line F08X01 to permit writing into RS memory. It uses F01X01 to provide an interlock between the DPU and the RS memory. Any data in a register junctor (RRJ) memory slot is protected against alteration by the DPU as a function of the F01X01 entry line.

When an RRJ slot is to be accessed by the CPU, F01X01 determines the amount of time remaining before the RS will scan the slot. From the input parameters received from the calling program, it knows the number of time slots required to modify the data within a particular RRJ (approximately 50 microseconds per slot). If enough time remains before the RS scan reaches the RRJ, control will be returned to F08 to permit the DPU to access the slot. The interrupts to the computer central processor (CCP) are disabled upon return to F08 to insure that F08 has the full time interval for its update.

If insufficient time is available to update, control is retained by F01 until the scan has passed the slot. At this time, the F01 Time Interlock Module will try again. Retries will continue until an interlock is obtained (600 tries are maximum).

The F08 02 entry line (FIG. 28 is used by maintenance programs for read and write requests. There are three functions performed by this routine. The first is to write from the work area into the RS memory, the second is to write from RS memory into the work area, and the third is a read/modify/write RS memory operation. This entry line also used F01 to prevent interference with the RS scan of the RRJ's. The exits of F08 are either back to the caller or to the Call Condition Analysis Program (C29).

As shown in FIG. 29, the exit points for F01X01 are either back to the caller for normal operations, or to the caller's error return in the case of an RS fault or RRJ trouble. The exit point for all programs calling F01X02 is back to the caller.

The watch dog timer (WDT) prevents software looping. If a program has control of the central processor for over 882 ms., the watch dog timer times out and a system clear and start is initiated by the Computer Third Party Circuit (CTP).

The TIME entry line of the DPU Scheduler (E01X04) permits scanning of the eight queues (0-7) associated with the central processor unit (CPU queues). If there are no entries in the queues, a watch dog time-out will occur (unless the WDT is reset). A time-out is not desirable at this time since there is no software looping involved. To prevent the time-out, E01X04 schedules a maintenance module called the Watch Dog Timer Manipulator (L40). The main function of this module is to reset the WDT.

If TIME scans the eight CPU queues and finds no work areas attached to any of the levels, it obtains a work area to schedule L40X01 (see FIG. 30). The work area is obtained by F04X01 and F03X01. The ACCEPT entry line (E01X01) places the work area containing the necessary parameters required by L40 on the front of the priority 4 queue.

ACCEPT returns control to TIME which will then rescan the queues. The work area for L40 is removed from the queue by F03X01, and L40X01 is then initiated. When processing of L40 is complete, control will pass to RELEAS (E01X03). RELEAS returns the work area used by L40 to the proper spare queue and passes control to TIME to rescan the eight CPU queues. If there are still no tasks in the queues, L40X01 is rescheduled and the manipulation of the watch dog timer is repeated.

Input/Output Device Control

The executive has control over the operation of the following I/O devices:

a. High speed paper tape punch and reader.

b. Teletypewriters (maintenance and office administrative).

c. Low speed paper tape punch and reader.

d. Marker communication registers (located within the originating and terminating markers).

e. Magnetic drums.

f. Ticketing magnetic tape unit.

g. Ticketing scanner unit.

The executive schedules the use of the I/O devices so that they may be utilized with maximum efficiency. The executive performs all actions required to operate the various I/O devices. This releases the application and maintenance programs from having to perform these functions.

If a request is made for an I/O operation, the operation is initiated immediately if the requested device is idle and a path to it is free. If the device or the path are not idle, the I/O requests are placed in the appropriate queue. The major queues used by the I/O programs are shown in Table EX2.

When a device becomes idle, its associated queue (or queues) is scanned in a present pattern. All tasks of the highest priority (first queue scanned), associated with the specified device, are processed before the next lower priority queue is scanned. Table EX2 defines the queues associated with each device, the order in which the queues are scanned, and the maximum length each queue may attain. Maximum queue length is equal to the number of work areas large enough to accomodate an I/O request for a specified device.

A normal request is one that does not require special attention or a particularly rapid response (most call processing I/O requests are normal requests). The high priority requests must be executed in a relatively short period of time as normal processing may depend upon these requests (e.g., maintenance requests used to isolate and diagnose malfunctions in the I/O devices).

The drum memory I/O operations are accomplished in much the same manner as operations for other I/O devices. The drum memory contains data needed by the system, and the programs used to access this data are the I/O schedulers, I/O handlers, and their associated subroutines.

The programs that access the drum are shown in FIG. 65 as users of the Data Manipulator Module (F35X01). This module is used by resident and non-resident programs and provides centralized control of all drum accesses. F35X01 obtains the required parameters needed for drum access and functions as a drum directory by locating the proper drum, drum segment, and start address required by the requesting program. The work area specified in index register one is used to process the request.

When a drum access request is received, F35X01 goes to its control tables in the core memory to obtain the parameter data needed to accomplish the access. This is unusual because most modules have the parameter data passed to them. The collected parameters are passed to the Drum Scheduler Module (F29) for scheduling the drum access operation.

The Drum Scheduler (F29X01) then schedules a drum read or write operation from the parameters it has received. It places the requester's work area into a queue associated with the desired drum control unit (DCU) pair. The work area is placed on the queue by the Link to Queue Routine (F/2X01) according to its assigned priority. Since there can be a maximum configuration of six DCU's, a maximum of three queues are used (one for each DCU pair). Each of these queues has three priority levels, as shown in Table EX2.

The F29 module exits to TIME when it cannot branch to the Drum Handler. At this time, an exit can also be made back to the requester; however, this action must have been previously specified in the requester's work area. If a software error occurs during F29X01 (e.g., the request number of the drum is invalid or the work area is too small for the I/O request), F29 will use ACCEPT (E01X01) to schedule an error return to the requester.

The Drum Handler Module (F30) performs the drum access. The Drum Scheduler calls F30X01 when it determines that the drum and DCU are not busy and that the request from F35 is valid. The Drum Handler uses the Drum Handler Subroutine Module (F40) to interrogate the request's work area data in order to obtain the required indications. F30 and the subroutines it calls are used to:

a. Remove the tasks from the appropriate queue.

b. Check request validity.

c. Initiate the DCU initialization.

d. Notify the requester if the request cannot be handled.

e. Disconnect the DCU after a request has been serviced.

Note: drum maintenance programs may also enter entry line F30X01.

TABLE EX2 __________________________________________________________________________ Queue Structure of I/O Devices. CONTROLLER I/O ORDER OF MAXIMUM (CDB OR DCU) DEVICE ASSOCIATED QUEUES QUEUE SCAN QUEUE LENGTH __________________________________________________________________________ Channel Maintenance Input (Keyboard) 1 1 Device TTY High Priority 2 N Buffer Output .phi. Normal Output 3 N HSPT Punch Output 4 N Input Keyboard or LSPT 1 2 Channel Office (Reader) Device Administrative High Priority Output Buffer TTY (Printer) 2 N 1 Normal Output (Printer or LSPT Punch) 3 N HSPT Reader Input 4 N High Priority (For Maintenance) 1 N (One Queue/DCU Pair) Drum Magnetic Block Transfer Control Drums (Program Read) Units (One Queue/DCU Pair) 2 N Normal (One Queue/DCU Pair) 3 N Computer Marker Communication Communication Communication Register (CCR Maintenance) 1 N Registers Registers High Priority Marker (One Queue for all Markers) 2 N Terminating Marker Normal (One Queue/TM Pair) 3 N Ticketing Magnetic Maintenance 1 N Device Tape Unit A Normal 2 N Buffer A Ticketing Magnetic Maintenance 1 N Device Tape Unit B Normal 2 N Buffer B __________________________________________________________________________

The exit to TIME from F30X01 occurs when the DCU's are busy. TIME will then scan the queues for another task that the central processor can perform until the drum access is retried. The Drum Handler normally returns to F29X01 which will check a bit in the requester's work area to determine whether to pass control back to the calling program, or to exit to TIME. The TIME exit is the most common.

The ACCEPT entry line of E01 is entered from F30X01 to schedule the following routines:

a. The requester's error return if a request cannot be serviced.

b. The next requested task when a DCU task has been successfully completed.

c. DCU maintenance when a DCU error occurs.

Ticketing write requests get special treatment by being attached to the front of the second drum queue by F02X02. The Drum Handler also uses F02X02 to link the non-resident programs that have not completed processing to the front of a zero priority CPu queue, thereby permitting these programs to be run first and freeing the non-resident area of core as quickly as possible.

The F03X01 subroutine is used to remove the indicated requests from the appropriate queue. DROP (F05X01) is used by F30 to release a work area when a task is completed after an I/O operation.

The CCR/Marker I/O operations are accomplished by the CCR Scheduler (F31) and the CCR Handler (F32A) programs and their associated subroutines (FIGS. 55, 55A, 56 and 56A-M). Various call processing and maintenance programs are the users of these modules.

The CCR Scheduler's F31X01 entry line accepts all requests for data transfers between the markers and the DPU via the CCR. F31X01 provides its users (calling programs) with the means of instructing the CCR to perform an input or output operation.

Entry line F31X01 takes the parameters in the requester's work area, determines if they are valid, and if they are, places the request into a CCR queue. The three types of queues used by the CCR Scheduler are listed in Table EX2. The work area size is also checked to see if it is large enough to accommodate the request. If the parameters are not valid or if the work area is not proper, the appropriate error routine is scheduled by F38. The CCR Scheduler exits to F32X01 when F31 finds that the appropriate marker (pair) and the CCR are in the idle state.

If an error occurs during the running of F31X01 (e.g., the work area obtained was not large enough for the task, a marker was checked in preparation for a data transfer and was found to be unequipped, etc.) F38X03 will schedule an error program. The LINK entry line (F02X01) is used to place entries on the back of the CCR I/O queue.

Entry line F31X02 is used to schedule CCR status dumps. A status dump includes such information as the scanner address, status of the CCR (idle scanning, sending, or receiving), if the message was sent or received successfully between the CCR and the marker, etc. The status is stored in the user's work area by F36X06. Control will be returned to the caller of F31X02 if requested. If no return was specified, F38X01 will act as an interface between F31X02 and E01X01 to schedule the next program.

The CCR Handler (F32A) uses two entry lines F32X01 and F32X05. F32X01 is used to perform operations necessary to prepare the markers and CCR for operation. It will initiate data transfers between the CPU and the CCR, and between the CCR and the markers. Entry line F32X05 is entered from the CCR Error Isolation and Recovery Module (F37) to retransmit the data transmission after an error has occurred.

The tasks placed in the CCR I/O queue by F31 are removed (via F03X01) so that they may be handled by F32A. F32X01 prepares the CCR and the appropriate marker pair for operation, and controls the data frame transmission by the CCR. The data frames consist of two 26-bit words for the originating markers (OM) or four 26-bit words for the terminating markers (TM). Data frame transmission to the OM is only performed for maintenance purposes.

If the requested marker is not available, F32X01 notifies the calling program. This is known as the requester's error return. Other subroutines used with F32X01 are F02X03 (LINK), which is used to add an unfinished non-resident task to the front of a CPU priority queue; F03X01 (UNLINK), which is used to remove entries from the CCR queues; and F01X01 (RS TIME), which is used for TM requests in order to perform an interlock with the register-sender.

The CCR Subroutines 1 Module (F36) handles common tasks required by the CCR I/O programs. F36 may be used to set up maintenance requests, unload the CCR data and status words, reconfigure the CCR, etc.

The CCR Subroutines 2 Module (F38) is also used for common CCR tasks. This module contains routines that provide an interface between the CCR Handler and the DPU Scheduler for scheduling of the next program to be run or of an error program. In addition, F38 can place a CCR maintenance-out-of-service (MOS) and schedule an isolation program, abort a task, etc.

The TTY and paper tape I/O devices are schedules and controlled by the I/O Scheduler (F26) and the I/O Handler (F27) modules, respectively, and their associated subroutines (FIG. 20). The I/O Scheduler accepts requests for and schedules the use of the following I/O devices:

a. Local maintenance teletypewriter (LMT)

b. Local office administrative teletypewriter (LOAT)

c. Low-speed paper tape reader (LSPTR)

d. Low-speed paper tape punch (LSPTP)

e. High-speed paper tape reader (HSPTR)

f. High-speed paper tape punch (HSPTP)

Entry line F26X01 is used to transfer I/O data via one of the peripheral devices listed above. F26X01 checks the parameters located in the requesters work area. The work area parameters include the work area size, name and priority of the requester's program, the next program to schedule in case of errors, etc. If errors are encountered, ACCEPT (E01X01) is called to schedule an error routine and will either pass control to E01X04 to permit scanning the queues for a new task, or will return to the calling program.

From the work area parameters, the I/O Scheduler determines the I/O device to be used and then checks to see if the device and its associated controller is available. (The controllers used with the TTY's and the paper tape devices are the channel device buffers - CDB's). F26X01 will check a table located in the core memory to determine if the requested device and its associated controller are available. If a device is not available, the I/O Scheduler can assign the request to an alternate device. If a request cannot be serviced because of hardware unavailability, the caller is notified via an error return.

The I/O Scheduler places each I/O device request into its appropriate queue by using the Link to Queue Module (F02X01). The I/O Scheduler exits to the I/O Handler (F27) when the I/O device is idle, the path to it is free via the channel device buffer, and the request is determined to be valid.

The I/O Handler Program (F27) performs all operations necessary to prepare each device for operation and affects the data transfer between the CPU and and selected device. Data manipulations, code conversions, parity checking requirements, etc., are provided by the various subroutines used by F27.

Upon entry, F27X01 unlinks the work area from the I/O queue via F03X01 and then stores the work area address into a table in the core memory. It also checks the availability of the peripheral adapter (PA) and channel device buffer (CDB), determines if the I/O request is an input or an output, and determines which device is to be used (LMT, HSPTR, etc.). The Interval Time Request Acceptor (E02X01) is called when a TTY input request is initiated. This routine allows 120 seconds maximum to input the message.

The CCS Recovery Module (S31) is used by F27X01 to check for any channel multiplex errors and to reset a CCX error counter. Another subroutine shown in FIG. 67 which is used by F27 is the Stop Time (E/3X02). This entry line is used when the I/O Handler wants to remove a task from a timer queue before the requested interval has expired. The entries are located and removed from the queue by the Queue Interrogation Module (E/6).

The Input Message Analysis Module (F/6) is primarily used to prepare the I/O system to receive a TTY input message, F/6 is accessed once for each TTY input, and at least once for each paper tape that is read. All TTY inputs are in ASCII code. ASCII code is converted to the computer's internal code and vice-versa by the F19 and F15 modules, respectively.

A TTY message consists of the ACTION CODE (the first four characters containing the identity of the program designated to receive the input data), and the inputted data. Each character in ASCII code will be converted to six binary bits by F19. The message length cannot exceed 72 characters, and the time required to input cannot exceed 2 minutes. Violations of either limit will cause the input message to be aborted and an error output message to be printed on the TTY.

The Paper Tape Control Module (F28) enables the paper tape to be read by the computer via a paper tape reader. It receives control when a maintenance man at a TTY types in the required ACTION CODE, or when an application program wants to read tape. The maintenance man placing the paper tape on the reader and typing in the proper ACTION CODE initiates the reading of the paper tape data into the system.

The data read into the DPU is placed into a 100 word work area. Input from either of the paper tape readers is limited to 70 words per request.

The inputted tape may be completely in ASCII code or it may only contain an ASCII code leader followed by binary data (core image).

Note: the first example is known as "ASCII paper tape" and the second is called "binary paper tape."

An application program or a maintenance program wishing to initiate a paper tape message output calls F26X01. The I/O Scheduler places the output request on the HSPTP queue (Table EX2). When the hardware necessary to service the request is available, the I/O Handler turns-on the device motor, allows the motor to reach operating speed, and initiates the paper tape output. Each paper tape punch output (high or low speed) is limited to 512 characters. Character packing, code conversion, parity checking, and other miscellaneous functions are performed by subroutine modules used by F27.

The magnetic tape transport (MTT) operations are scheduled by the Magnetic Tape Schedule Module (F73). The magnetic tape transports (the MTT is duplexed) are controlled and operated by the Magnetic Tape Handler Module (F74). See FIG. 68 for a magnetic tape software diagram.

The F73 scheduler module places the MTT access requests into an MTT queue according to priority via the Link to Queue Module, (F02) and the ACCEPT (E01X01) entry line of the DPU Scheduler. When F74 is entered at F74X01, these requests are removed from the queue and are processed by the Ticketing Magnetic Tape Unit (TMU). The MTT, its associated peripheral adapter, and the necessary read/write electronics comprise the TMU. This is a dual channel configuration used for ticketing purposes.

The Ticketing Output Format Module (T04) calls the Magnetic Tape Scheduler via F73X01 when the core resident Call Record Buffer Table is filled (when it contains a maximum of 15 call records). The Magnetic Tape Scheduler accepts the magnetic tape output request and schedules a call record data block which is formatted and transferred to tape by the Magnetic Tape Handler. If errors are encountered, ACCEPT is called to schedule an error routine and control is either passed to TIME or returned to the requester of F73.

Entry line F73X02 is called by the Magnetic Tape Label Routine (F75) in order to write a header label on tape. F73X03 is used to place a particular channel (A or B) of the ticketing subsystem on-line or off-line.

The F74X01 entry line of the Magnetic Tape Handler is the normal entry from the Magnetic Tape Scheduler. This program removes the requests from the MTT queue and initiates the tape output.

The F74A01 subroutine is used by F74 to output four data words on magnetic tape. F74T01 is a subroutine used by F74 as a 32 millisecond timer. DIACON and CONFIG are used by the Magnetic Tape Handler to schedule maintenance programs and to reconfigure the ticketing system hardware, respectively. DIACON schedules ticketing device buffer (TDB) localization routines and CONFIG is used to place the appropriate TDB maintenance-out-of-service (MOS).

The Ticketing Scanner Unit (ITSU) Handler Program (F72) permits the ticketing operations to be accomplished (FIG. 69). The Ticketing Scan Interrupt Module (T03), at 600 ms. intervals, calls F72 to enable the TSU to successfully interrogate all incoming trunks and OJ's. The busy/idle condition of local lines and trunks as well as the duration holding time of the trunk circuits is passed by F72 to the calling programs for analysis.

The requests for ticketing scanner unit operation from the TSU Handler's calling programs do not have to be scheduled by a scheduler program because of the high speed of TSU operations which permits a TSU to be effectively accessed on a continuous basis. F72 functions as an I/O program for ticketing and maintenance programs, enabling them to store information within the ticketing device buffer (TDB) and to interrogate and control the TSU.

Entry line F72X01 is always entered as a closed subroutine. In the event of a TSU fault condition, F72 schedules a fault localization routine (via DIACON) to attempt to rectify the condition. CONFIG is used to reconfigure a TDB/TSU channel to its alternate TDB/TSU channel.

The TSU Handler uses module L26 to count TSU errors in a given length of time. Thus, the error rate can be used to indicate a faulty TSU.

SIMPLIFIED OPERATION OF THE EXECUTIVE DURING A LOCAL-TO-LOCAL CALL

The simplified block diagram shown in FIG. 36 illustrates a local-to-local call including the executive and call processing program modules that are involved. Some of the basic modules that are required for this operation, such as the LINK or UNLINK from queue modules, are not shown.

The following definitions apply to FIG. 70:

Cfsv call For Service Voltage

Cht call History Table

Cos class of Service

Ccr computer Communication Register

Icap interrupt Cause Analysis Program

Om originating Marker

Dpu data Processor Unit

Rj register Junctor

Rs register-Sender

Rft request For Translation

Tm terminating Marker

When the originating marker (OM) senses a call for service voltage (CFSV) caused by the customer going off-hook, the OM sends a two word data frame to the computer communication register (CCR). This data frame contains the originating junctor identity, the customer's equipment identity, and the line matrix outlet identity. An interrupt is sent to the data processor unit (DPU) by the CCR which causes ICAP to pass control to the CCR Ready Interrupt Handler (F32). F32 analyzes and processes the data and then requests F33 to perform a register junctor (RJ) translation.

The F33 module translates the R-matrix outlet identity into a register junctor identity. The data frame is then stored in the call history table (CHT) in main memory (addressed by the register junctor time slot). The register-sender memory is updated to record the call origination in order for the register-sender (RS) to take over control of the originating path and allow the originating marker to drop control.

After the register junctor translation has been performed, F32 schedules a class-of-service (COS) translation to be performed by call processing module C/1. This translation consists of retrieving from drum, via Data Manipulator Module F35, the unique characteristics of the customer, which are recorded with his line equipment number identity. F35 schedules C/2 via the DPU Scheduler. C/2 then analyzes the COS information (e.g., billing information, type of receiver required, total number of digits required before requesting a translation, etc.). Part of the COS data is placed in the Call History Table in main memory and part is stored in register-sender memory. The data placed in register-sender memory is used to control the receipt and analysis of the dialed digits and to supervise the network via the register junctor.

The register-sender returns dial tone to the calling line and prepares to receive digits. The RS collects the first three digits and then program control is passed from the Call Processing Program to the Executive Program by a request-for-translation (RFT) from the RS. The RFT signal causes control to be transferred to F51, the Register-Sender Interrupt Processor. When F51 is completed, control is passed back to the Call Processing Program (module C06) for the three digit translation analysis. This is done to determine the type of call being analyzed, and is accomplished by accessing the three digit translation table on the drum.

As a result of the three digit analysis, call processing module C08 is scheduled and seven digits are accumulated in register-sender memory before another translation is requested. After collecting seven digits, the register-sender again generates a request-for-translation (RFT). The Register-Sender Interrupt Processor Module (F51) initiates a read-out from register-sender memory, stores the read-out in computer main memory, and then schedules Call Processing Program C06 to perform the seven digit translation.

Since this is a final translation, the Call Processing Program requests a directory number translation. This initiates a request to the F35 module for a drum look-up of the local director number table which provides the line equipment number of the called line, the proper ringing code, and any special called line features.

The Call Processing Program analyzes the data retrieved from the drum and obtains the originating line matrix identity, which defines the selector matrix inlet. The data needed to instruct the terminating marker to establish a path from the selector matrix inlet to the called local line, together with other control data, is loaded into four 26-bit words to be sent serially by the computer communication register to an idle terminating marker. This data transfer is scheduled by the CCR Scheduler (F31) and processed by the CCR Handler (F32A).

The terminating marker sets up the terminating condition and upon successful completion, communicates this result to the CCR. The CCR sends a ready interrupt to the central processor which is processed by E24 and the CCR Ready Interrupt Handler (F32B). The RS, upon instruction that the termination operation was successful, performs its terminating phase functions. Call processing module C26 returns the call history address to idle, and a cut-through and register junctor disconnect is initiated. Program control is then returned to the Executive Program for scheduling of the next task in the system via TIME (E01X04).

COMMON MAINTENANCE PROGRAM DESCRIPTION

1. general

1.01 this section describes the Common Maintenance Program portion of the Field Program for the No. 1 EAX System, which, together with the Executive Program, controls the system and subsystem maintenance functions.

1.02 The purposes of this section are:

1. To identify the generic programs and tables that make up the Common Maintenance Program.

2. To describe the major functions of these tables and programs.

2. FUNCTIONAL DESCRIPTION

2.01 the No. 1 EAX Maintenance Software is composed of the Common Maintenance Program modules and tables and the many Subsystem Diagnostic Programs. Together, they comprise well over 50% of all the software contained in the No. 1 EAX software system.

2.02 The Common Maintenance Program contains program modules, routines, and tables utilized by all maintenance programs. It provides system checks and centralized control over the maintenance programs.

2.03 The Common Maintenance Modules provide an interface between the Executive Program and the diagnostic maintenance programs which are associated with the No. 1 EAX subsystems (e.g., register-sender, drum memory system, etc.). These modules provide common functions used by almost all of the diagnostic programs.

2.04 The major functions of the Common Maintenance Program are as follows:

a. Scheduling of subsystem diagnostics.

b. Reconfiguring the system or subsystem.

c. Performing software audits.

d. Monitoring subsystem power conditions.

e. Providing central control of error counters.

f. Providing software control over lamp displays.

2.05 The Common Maintenance modules interface with each other and with the subsystem maintenance programs via the Executive Program and the Diagnostic Control Module (DIACON). Maintenance programs are scheduled by calling DIACON. Programs scheduled by DIACON are processed before all other programs because they are more important to the overall operation of the system. Accessing DIACON is faster than using the executive's DPU Scheduler, because the requesting program does not have to first obtain a work area in which to schedule the appropriate DIACON module.

2.06 The subsystem diagnostic program modules allow the No. 1 EAX hardware to operate in the presence of faults and errors. These modules provide the following functions:

a. Malfunction detection.

b. Fault isolation (of a faulty unit).

c. Malfunction recovery and restart (after disturbances due to diagnostic testing or repairs).

d. Fault localization (to a location within a few printed wiring cards).

e. Repair verification (checking a "repaired" unit before placing it in service).

f. Routining (testing the capability of a subsystem or unit to perform certain tasks).

2.07 The hardware subsystems of the No. 1 EAX are monitored to detect any malfunctions that occur. The subsystem maintenance software permits the hardware to function in spite of these malfunctions. Diagnostic programs discussed in this practice apply to the following hardware:

a. The Processor Configuration Group (PCG),

b. The Register-Sender,

c. The Markers and Network,

d. The Drum Memory System, and

e. The I/O Peripheral Apparatus.

3. MAINTENANCE PHILOSOPHY AND GOALS

3.01 the maintenance software, as well as the maintenance hardware, has been designed to ensure a high degree of reliability. Faulty equipment can be readily isolated by automatic fault detection features.

3.02 The general objectives of the No. 1 EAX maintenance design are as follows:

a. Reliability - obtained by the use of conservative circuit designs (adequate circuit margins) and long life components (transistors, integrated circuits, etc.).

b. Continued service during unit failures and routine preventive maintenance - provided by the use of redundant or duplexed units.

c. Rapid detection of faults - accomplished by continuous hardware and software checks.

Saving of message data while testing and configuring the system around faulty units - accomplished by fault recognition programs. These programs permit recovery of the call processing function and protection of calls in progress during hardware, software, or procedural (human intervention) difficulties.

e. Distinguishing between occasional errors and marginal/intermittent faults - accomplished by the use of error analysis programs.

f. Isolation of faults to the appropriate plug-in cards - performed automatically by diagnostic programs.

g. Rapid detection of faults and marginal troubles - provided by in-service checks of customer's lines.

3.03 Every hardware subsystem required to maintain service is provided in duplicate. This redundancy is provided primarily for dependability rather than to increase the traffic handling capacity of the system. In addition, faults must be found and corrected quickly to minimize the occurrence of system failure due to multiple faults. For this reason, all units are constantly monitored; and automatic detection of malfunctions and automatic switching of units provides system reliability.

3.04 When a malfunction is detected in the system, call processing is temporarily interrupted by a fault recognition program. This program determines the faulty redundant unit and removes it from service. It then requests the appropriate diagnostic program to be run at a later time and returns control to the Call Processing Program. This operation is performed so quickly that degredation of service is not detected by telephone customers.

3.05 Fault detection, isolation, and recovery programs are handled quickly because call processing is inhibited during their execution. All other programs are deferrable and are normally run intermixed with the call processing programs.

3.06 After the fault recovery programs remove the faulty unit from service, the localization programs will determine what set of printed wiring cards (five or less) associated with the faulty unit should be replaced to correct the problem. The maintenance man will replace the specified cards and a repair verification program will be executed which will insure that the unit is now operating properly. The fault recovery software will then return the repaired unit to an in-service condition.

3.07 System malfunctions can be caused by faults or they may be instigated by transient errors. In many cases, rather than interrupt program operation, the failed operation is repeated to see if the same malfunction condition will occur again. If it is determined that an error condition existed and the error did not recur on the retry, a counter is incremented. The counter is set to a predetermined count within certain time periods for each occurrence.

3.08 Maintenance functions fall into two general categories, automatically initiated and manually initiated. The following are automatically initiated functions:

a. Detection of malfunction performed by the hardware.

b. Isolation of fault - determine which of a pair of redundant units is faulty and it will separate or isolate the faulty unit from the rest of the system by a reconfiguration program. (The good unit will remain in service).

c. Fault localization - narrows down location of the fault to a section of the malfunctioning unit, indicates the few circuit boards that could cause the fault, and initiates a maintenance TTY trouble report to inform a maintenance man.

d. Repair verification - checking out a unit or section of a unit to verify that it is functioning properly before returning it to service.

e. Auditing - verifying the validity of the software, i.e., queue contents, table contents, etc.

f. Unit Clear and Start - clearing a unit and placing it in a predefined or initial state and then placing it in service. The clear function may be performed alone without being followed by the start function. A memory update may be required so that both memories agree before placing a unit in service.

3.09 The manually initiated maintenance functions are:

a. Reconfiguration - changing the status or configuration of the hardware unit(s). The Configuration Control Program (CONFIG) performs these functions.

b. Routining - exercising a unit or portion of a unit to see if it is functioning properly.

c. Auditing - verifying the validity of software status (same as paragraph 3.08 e).

d. Repair Verification - initiated by the maintenance man after a unit has been repaired. Its function is to see whether the repaired unit is operating properly. If it is, control will automatically be passed to the Unit Clear and Start Program.

e. Unit Clear and Start - initiated by the maintenance man. This procedure bypasses repair verification and performs the clear and start functions described in Paragraph 308, f.

4. MAJOR COMMON MAINTENANCE PROGRAMS

4.01 the common maintenance software is composed of program modules and tables which are stored in core memory and in the drum memory systems. This software provides functions that are ncessary to the subsystem diagnostic programs but not peculiar to any specific one. The major common maintenance functions are listed in Paragraph 2.04.

Diacon

4.02 the Executive Program allows the common maintenance program DIACON, the Diagnostic Control Program, to receive control without the need to first obtain a work area; a necessary requirement for all other programs in the system. This feature permits a maintenance program requesting to be run to be initiated before the other program requests in the associated central processor priority queue. This feature is accomplished by using a bit called DIAFLG located at the front of the CPU's priority zero queue. The DIACON Request module (L20A) will set this bit.

Note: there are eight DIAFLG bits, one for each interrupt priority level. Only three DIAFLG priority levels are assigned at this time. Priority level 0 is for DIACON, level 1 is for the TTY Use Request Interrupt Processor (F58), and level 3 if for CONFIG (the Configuration Control Program).

4.03 There are six major tables used by DIACON. These tables are listed below:

a. DIAJOB - called the "HDJ" table, it indicates the DIACON jobs to be done and the applicable unit involved. It consists of two tables, 10 words each, containing one bit for each unit to be diagnosed, in four categories (isolation, clear and start, diagnostics, and audits). DIACON will not schedule any programs that are not listed in DIAJOB. An example of one of the 10 word DIAJOB tables is shown in Table MP3. See Table MP1 for a glossary of the terms found in Table MP3.

b. DIAVEC - called the "HDV" table, it is used as a pointer to locations in the HDD table (DIADAT) for data storage. DIAVEC also indicated valid jobs, contains data lengths, and contains identities of immediate special programs (Timed Routine Scheduler - TRS, Power Monitor Scan - PMSCAN, Work Area Audit - WARAUD, and the Configuration Pushbutton Handler - CNFPBH).

c. DIADAT - called the "HDD" table, it is used to store any necessary data to be passed from the requester to the requested program. This data will remain in DIADAT until the requested program is scheduled.

d. DIATAB - called the "HDT" table, it is a block of core used by the DIACON client. However, it is not a work area and cannot be used for linkage to queues.

e. DIACTL - called the "LDC" table, it is DIACON's control table; containing the identity of the program to be scheduled, the required size work area, and necessary system configuration data.

f. DIALOC - called the "LDL" table, it is used by DIACON to locate the proper entry in DIACTL for a given job. It lists the number of tests, if any, for a specific job and identifies audit clients (see Table MP4).

4.04 the DIACON Request Module (DIAROT) can be entered at either of two entry lines (see FIG. 37). Upon entry, DIARQT (L20A) uses L12A to save the contents of the required registers (RQ, X1, X2, and the four pseudo registers in core), and uses L12B to restore them before exiting. The L20A module forms the job number, checks the range of the job type (0-7), and checks the validity of the job against validity data in the HDV table. DIARQT sets the appropriate bit in the first DIAJOB table, sets the level 0 DIAFLG, and exits to the Executive Program's TIME Module.

4.05 The DIAFLG Handler Module (L21A) provides an interface between the CPU queue scanning module of the executive (TIME) and DIACON (FIG. 38). There are three levels (out of eight) used at present that L21A is concerned with. (They are listed in the note preceding Paragraph 4.03.) The level that is applicable to this Practice is level 0. L21A checks the priority of the requested program and, if a number greater than seven is detected, a return is made to TIME. If a number equal to or less than seven is detected, control is passed to the appropriate program. For this discussion, it is assumed that level 0 was set; therefore, an exit is made to L21C.

4.06 the DIAJOB Interrogator module (L21C) is entered at L21X06. L21C sets up loop counters to permit a search of all four sections of the DIAJOB table for a bit set high, representing a "job to do" (isolation, clear and start, diagnostic, or audit). If a job is found, L23C will determine if it can be processed. DIACON jobs are referred to as "specials" or "immediate specials." The immediate specials (see Paragraph 4.03 (b)) are scheduled by the Drum DIACON Module (L23) which must first be scheduled by L21C. A work area is obtained, for the scheduing of specials, by calling the Work Area Getter Module - L01X02 (a CONFIG module). If a work area is available, Drum DIACON or an immediate special is scheduled, via ACCEPT, L21C then exits to TIME.

4.07 if no work areas are available, DIACON returns control to the DPU Scheduler's TIME module to permit processing of other programs waiting in the priority queques, and sets level zero DIAFLG again. The queues are schanned by TIME, and when TIME recognizes that DIAFLG is set, DIACON will reattempt to schedule the program.

4.08 Drum DIACON is entered at L23X01 for scheduling of special jobs. This entry lines of L23 is to the Client Scheduler (L23A). It will check DIAJOB to see if the client (the program to be scheduled) is an audit program. If it is, L23A will use the Audit Scheduler (L23B) to schedule the program (via ACCEPT). L23A will obtain the identity of a special program to be scheduled, obtain a work area of the proper size, and schedule the client (via ACCEPT). Data required by the client is transferred from the HDD table to the HDT table. Drum DIACON will then set up to search DIAJOB for more jobs. If a job is found, lever 0 DIAFLG is set and L23A will release NRA and pass control to the executive.

Config

4.09 the Configuration Control Program (CONFIG) is composed of several modules that provide centralized control over system status and configuration changes: config maintains a record of current system status in the System Status Table (HST). The HST table can be modified only by CONFIG and the Power Monitor Scan Program (PMSCAN), although its data may be read by any requesting program. Table MP6 contains the data located in the first 15 words of this table.

4.10 The CONFIG program has five tables associated with it. They are as follows:

a. HST - the System Status Table, reflects the current system configuration.

b. HCC - the CONFIG Control Table, equates requests to L01 entries.

c. LCC - the CONFIG TTY Input Control Table, equates reconfiguration requests to CONFIG entries.

d. HPD - the Constant Parameter Table - it is a table of Command Pulse Directives (CPD's).

e. HTT - the Reconfiguration Coded Message Buffer Table - contains system status updates used by V05.

4.11 config receives requests for configuration changes and determines if the changes can be made without jeopardizing system integrity, by checking the HST Table. It performs allowable configuration changes or calls the necessary programs to make these changes and then updates the HST table to reflect the change.

4.12 The System Status Table provides a means of conveying hardware availability and status information to requesting programs. It contains informaton that indicates the status of all hardware subsystems and devices in the No. 1 EAX (except the space divided equipment such as lines, trunks, etc.). The HST table is modified by CONFIG whenever a change is made to system configuration, or by PMSCAN whenever power is removed or restored to a unitl

4.13 Whenever CONFIG receives a configuration request, it checks the HST table to insure that granting the request will not adversely affect the system. If both units of a pair have to be placed temporarily "maintenance-out-of-service" (MOS), CONFIG will be called. Normally, CONFIG attempts to keep one unit of a pair in service, but there are instances when both units must be placed into this MOS condition. This configuration is only allowed for a predetermined amount of time.

4.14 If the requested change is determined to be allowable, it will be made by CONFIG or a submodule called by CONFIG and the HST will be updated to reflect the change. At this time, maintenance personnel will be alerted, if necessary, by calling a program which will set an alarm and/or generate a TTY output message.

4.15 When a hardware status change is made, CONFIG will verify that the change was actually made as requested. If the verification fails, CONFIG will pass any information pertaining to the reason the change was not made, to the requester.

4.16 CONFIG's L01 module uses six major entry lines to provide centralized control of system configuration. These entry lines are as follows:

a. L01X01 (FIG. 39) - Accessed by the SYSCLR Program and whenever a third party trap fault recovery is taking place. This module entry is used to update the RS/CCP and CCP/CCX interfaces. It also updates the System Table from the sense line status (so that the software status will reflect the hardware status). A TTY message will be outputted for every configuraion change.

b. L01Xo2 (FIG. 40) - Called by DIACON, THE TTY Use Request zinterrupt Processor (F58), or L01X03 to obtain a work area. It uses L12A and 12B to save/restore the central processor's X1, X2, and Q registers and the core memory's four pseudo registers. L01X02, the "Work Area Getter", calls the executive's Work Area Spare Module (F04X01) to remove the requested work area from the applicable queue.

c. L01X03 (FIG. 41) - Used to obtain a work area of the requested size and then schedule a TTY printout. This module calls L01X02 to obtain a work area and then places it in the proper CPU queue so that the Power Failure Printout Program (V05) can use it for its processing.

d. L01X04 (FIG. 42) - Used to control non-scheduled routines. The input parameters needed by this module are the unit number and the identity of the requested routine. L01X04 accesses the HCC table (see Table MP7) to obtain the CONFIG control word that contains the data associated with the requested routine. Module L01X04 can schedule the following routines:

1. PCG Off-line Request (L01B01).

2. ctp off-line Request (L01B02).

3. place CTP In-service (L01B03).

4. set the RES and TTY Bits in HST (L01B04). 5. Reset the RES and TTY Bits in HST (L01B05). 6. CCX/CCP Interface Update (L01B10). 7. CCX/MOS Request (L01B11). 8. Place CCX In-service (L01B12). 9. Set CCX A or CCX B Active (L01B13). 10. Set CCX A or CCX B Temporarily Active (L01B14). 11. Reset Temporary Condition of L01B14 (L01B15).

e. L01X06 (FIG. 43) - Used at the occurrence of a level 1 interrupt, to compare the CCP/CTP on-line hardware status with the MOS status located in the HST table. If they do not compare, a CCP/CTP configuration change must have taken place. If a change occurred, a TTY output will be initiated. L01A10 will add the message to the list (TTY output queue) and will use L03X03 to set level 3 DIAFLG (CONFIG). This will cause DIACON's DIAFLG Handler Module to pass control to CONFIG's L01X03 module. L01X03 obtains a work area (via L01X02) and schedules the power Failure Printout Program (V05X01), via ACCEPT. If, during the processing of L01X06 it is found that both CCP's are off-line and the CTP is on line, an exit will be made to System Clear and Start (L16X02). An exit is also made to L16X02 if both CCP's are on-line and the CTP is off-line.

4.17 The Marker Configuration Control Module (L02) is a closed subroutine used by programs desiring marker configuration changes. L02 places the required parameters (from the requestor) into a work area and the CCR Handler (an executive program) takes over control, using this work area, and performs the change.

4.18 L03 is the CONFIG Subroutines Module. This module is only called by other CONFIG modules. It is used to perform a variety of functions; e.g., Save Registers (different than other "save register" routines; saves X1, X2, Q, A, and the No. 1 and No. 2 pseudo registers), Restore Registers (same registers listed above), TTY Message Lister (adds messages to a TTY output list and sets level 3 DIAFLG, which initiates action by L01X03 to schedule the Power Failure Printed Program - V05).

4.19 the Ticketing Changeover Module (L04) is used when ticketing error interrupts occur (TDB, TSU, or TMU errors). This module permits reconfiguration of the duplexed ticketing hardware and localization and repair-verification of the cause of the interrupt.

4.20 CONFIG's L05 module is accessed by the Maintenance Input Analysis Program (MAININ-L32) when a TTY removal or restoral request occurs. L05's purpose is to either pass control to a special handler program for special handling functions, or to the CONFIG Control Module (L01X04 to perform the reconfiguration). The special handlers are a part of L05 and are accessed as subroutines (L05A02, L05A03, etc.).

4.21 The Routining Message Handler Module is called by L03X03 when a remove or restore message is generated by routining programs as opposed to being initiated by a TTY request from the MCC. The L06 module will always return control to L03X03. L03 will restore the registers (via L12B) and return control to the routining program.

4.22 There are four major categories of configuration change requests:

a. Power failure.

b. MCC configuration pushbutton requests.

c. TTY input requests.

d. Program requests.

4.23 Power Failure. A power failure causes a power alarm indication and initiates a level 1 interrupt (highest priority). This causes the Executive Program 's E21 module (ICAP) to call the Power Alarm Interrupt Processor (V04). In order to insure that all power alarm conditions are reported to the computer, a periodic scan of the data lines (a power monitor scan) is initiated, via DIACON, as a result of the occurrence of the first power alarm interrupt. This scan will continue, by the Power Monitor Scan Program (PMSCAN), until all power alarm circuits provide normal indications.

4.24 If a subsystem has gone to a power down condition, the following events occur:

a. CONFIG is informed that the unit has no power and it will place the unit "out-of-service"(OS) in the HST.

b. The MANIAC Program's HJI Table will have a bit set to indicate "just ignore" all interrupts.

c. The I/O Handler Program associated with the unit or device that had the power failure is informed of the power down condition so that it may perform any necessary operations required.

d. A message is outputted via the TTY to indicate a power failure for a specified unit.

4.25 If a subsystem has gone to a power up status, the following events occur:

a. CONFIG is informed that the unit is no longer OS, but is still MOS. CONFIG will indicate this status in HST.

b. A TTY output message will indicate that power is restored to the unit.

4.26 If any subsystem is in a power down condition after the Power Monitor Scan Program has run, PMSCAN will pass control to the Interval Timer Request Acceptor Program (E02). E02 will run PMSCAN at 1 second intervals. When all subsystems have power up. PMSCAN will go to RELEAS (E01X03) which relinquishes control to TIME. PMSCAN will be called again when the next power interrupt occurs.

4.27 MCC Requests. CONFIG is called whenever any of the MCC configuration pushbuttons are depressed. This CONFIG request is passed via the Configuration Pushbutton Handler Program (CNFPBH-V63). By the use of this module, the maintenance personnel has the capability of requesting configuration changes to any of the subsystems. These configuration requests via the MCC configuration pushbuttons generate level 1 interrupts as do the subsystem power failures. (CNFPBH is a common maintenance program.)

4.28 Maintenance personnel have the capability of overriding configuration requests from the MCC Configuration Panel. For example, a typical maintenance request may be: "Place one drum memory system (DMS) of a pair MOS (e.g., DMS1)." By depressing the pushbutton of the other DMS of the pair (DMS2), the original request is overridden. DMS1 is placed in service and DMS2 is placed MOS.

4.29 to place the unit back into service, the MCC pushbutton must be reset. The Configuration Pushbutton Handler Program will schedule, via DIACON, a repair verify program on the unit. This operation is treated in the same way as a normal TTY restore request except that the "MCC bit" is reset. The MCC bit is located in the Last Look table (HCL) which is maintained by CNFPBH to determine changes in status (see TAble MP7).

4.30 tty input Requests. A TTY input request for a configuration change also initiates a level 1 interrupt. Maintenance personnel can initiate a TTY input request at the MCC on either the office or maintenance teletypewriters.

4.31 When a TTY interrupt occurs, ICAP Module E21X01 is called. This module calls CONFIG Module L01X06 as a closed subroutine to check the hardware status of the CCP/CTP configuration against the MOS status in HST. To determine whether the interrupt that occurred is valid, the Maintenance Interrupt Access Program (MANIAC) is called. This program will access certain tables which will verify that the interrupt is not to be ignored, as would be the case if it were purposely generated by a diagnostic program.

4.32 Since the interrupt is valid, the appropriate interrupt processor program is called; in this case, the TTY Use Request Interrupt Processor (F58). F58 obtains a work area by using CONFIG's Work Area Getter Module (L01X02) and then schedules the Input Message Analysis Program Module (F06), via the ACCEPT entry line of the DPU Scheduler Program.

4.33 The Input Mesage Analysis Module examines the input message to determine the requested task and its data. F06 converts the inputted ASCII code to internal code (binary) and will schedule the Maintenance Input Message Analysis Program (MAININ - L32) via ACCEPT. MAININ changes the internal code data into parameters that CONFIG or DIACON can use and then schedules CONFIG module L05X01 via ACCEPT. The parameters received by L05X01 are the action code, unit type, request code, and the unit number. L05 will perform the request configuration by accessing any other CONFIG modules that may be needed to accomplish the task.

4.34 The units that can be removed from service by a TTY request are as follows:

a. Computer communication register (CCR)

b. Computer channel multiplex (CCX)

c. Maintenance device buffer (MDB)

d. Channel device buffer (CDB)

e. Ticketing device buffer (TDB)

f. Drum memory system (DMS)

g. Originating marker (OM)

h. Terminating marker (TM)

i. All peripheral adapters (PA's) for (d), (e), and (f)

j. Processor control group (PCG)

k. Computer third party (CTP)

l. Register-sender (RS)

m. Register junctor (RJ) group

n. Dual tone multifrequency (DTMF) receiver

o. Multifrequency (MF) receiver

p. Multifrequency (MF) sender

4.35 For removal requests, MAININ routes the request to CONFIG. For restoral requests, MAININ routes the request through DIACON to either a repair verify or a unit clear and start program. Normally a repair verify program will be scheduled by DIACON to determine if the unit to be placed into service is working properly. If verification passes, a unit clear and start "resync" module is called to place the unit in service. Maintenance personnel also have the option to request that verification be omitted; and if this occurs, DIACON will only schedule a unit clear and start program.

4.36 Program Requests. Program requests for configuration (status) changes are also handled by CONFIG. All units listed in Paragraph 4.34 can be requested by programs for configuration changes, although, CONFIG may deny the request for various reasons.

4.37 When CONFIG receives a request, it usually performs certain checks upon the data received as a result of the request. For example, if a request is made to place a PCG into a maintenance out-of-service status (MOS), CONFIG will check the other PCG and its associated half of the computer channel multiplex (CCX) to see if either is MOS. If either or both are MOS, the request will not be honored. If they are not MOS, CONFIG will take the PCG off-line with a command pulse directive instruction (CPD). The off-line condition of the PCG will be verified by checking the appropriate sense line, and the MOS status of the PCG will be written into the MOS bit of HST. CONFIG configures the RS/CCP and CCX/CCP interfaces around the on-line PCG and returns control to the requesting program at the configuration request address plus one.

4.38 CONFIG verifies hardware configuration changes, as was described in the preceding paragraph, where the MOS status of the PCG that was taken off-line was checked. If verification did not pass, CONFIG would have returned an error parameter to the requesting program. An exception to the hardware verification checks is made for some of the requests to the register-sender multiplex; such as, "configure the RS multiplex according to the CLU MOS states," or "set maintenance busy bit associated with the specified RJ." No verification is made on these requests because of hardware delays and the lack of indicators to monitor.

Maniac

4.39 the Maintenance Interrupt Access Program (MANIAC) provides another common maintenance function - centralized control over special processing of interrupts. MANIAC (L00) allows the system to operate normally without being affected by interrupts generated by maintenance programs.

4.40 MANIAC accepts requests for special handling of interrupts from maintenance programs that desire to have certain interrupts handled in other than the normal manner. The requester must indicate how it wants the interrupts handled, e.g., "just ignore," "reset and ignore," etc.

4.41 MANIAC accesses several tables to identify the sense lines associated with all interrupts. When an interrupt occurs, the Interrupt Cause and Analysis Program (ICAP) will be entered. ICAP "takes a snapshot" of the state of the sense lines associated with the interrupt level that occurred and will store this data in a specific area of core memory. A Hot Sense Line Finder Program (E20) is used by ICAP to find the particular interrupt sense line that is "hot." ICAP will access the MANIAC Program and will pass the number of hot sense lines found to it. MANIAC accesses its tables and returns the following information to ICAP:

a. An indication of whether or not any maniac or non-abnormal routing has been requested on this sense line.

b. The maniac routing can be any one of the following:

1. The interrupt is to be ignored without resetting the source (the interrupt sense line).

2. The interrupt is to be ignored and its source is to be reset.

3. The interrupt is to be routed other than normally (rerouted).

4.42 If the interrupt is to be rerouted, two additional words of data will be passed to the appropriate interrupt handler program. These two words contain the identity of the program to be run, the priority of the program, and the sense line number.

4.43 The MANIAC Program (L00) accesses three tables in the core main memory (CMM). These tables are:

a. HJI - requests in this table will be interpreted by the interrupt handler to cause the interrupt to be ignored without resetting the source (interrupt sense line).

b. HJJ - the requests in this table will be interpreted by the interrupt handler to cause the interrupt to be ignored and the source reset.

c. HRR - requests in this table will be interpreted by the interrupt handler to cause the interrupt to receive "special handling." The details of the special handling defined by the individual interrupt handlers. Each request in this table is two words in length. 4.44 The HJI and HJJ tables each contain one bit per interrupt sense line. An HRR table entry is two words in length and contains the following information:

a. Assigned sense line number.

b. RJ number, if required (determined by sense line and handler program).

c. Control bits used by the interrupt handler.

d. Entry line address of next program.

e. Priority at which next program is to be scheduled.

f. A bit (SOB) that indicates whether the next program is to be scheduled, or branched to directly.

4.45 There are three macros used by client programs to request any of the functions of the MANIAC Program. The requests made through the use of the macros will be passed to the appropriate interrupt handler, via ICAP, as a result of the sense line determination and a check of the maniac table data associated with the particular sense line.

4.46 The MANIAC macros are as follows:

a. MANCHK - used to access the three maniac tables and return sense line status information to the requester.

b. MANRST - used to reset appropriate indicator(s) in the maniac tables.

c. MANSET - used to set appropriate indicator(s) and store data within the maniac tables.

4.47 When a power-off condition is detected on a unit, all interrupt sense lines associated with that unit will be set to just-ignore (via MANIAC) by PMSCAN. Whenever a unit is placed in a hardware off-line state by CONFIG, all interrupt sense lines associated with this unit will be set to just-ignore (via MANIAC) by CONFIG.

4.48 when an isolation program is scheduled by an interrupt handler (via DIACON) all interrupt sense lines associated with the unit will be set to just ignore. This action is instigated by the interrupt handler, via MANIAC.

4.49 when localization is scheduled on a unit, all interrupt sense lines associated with that unit will be set to just-ignore by the program scheduling the localization. When diagnostic programs (see NOTE below) are run, they must consider the status of maniac functions associated with a particular unit. This means presetting the status of the interrupt sense lines, associated with the unit being diagnosed, to a desired state.

Note: diagnostic programs: all localization, repair verification, routining, unit clear and start, and scheduled isolation programs.

4.50 Localization and repair verification programs will leave the unit either in a "hardware off-line" or a "back in service" condition. For hardware off-line, the unit is marked MOS in the HST table and the specific interrupt sense line bit in the HJI table is set to just-ignore. If the unit is placed back in service, the MOS bit in HST and the interrupt sense line bit will be reset. CONFIG then removes all MANIAC requests on the interrupt sense lines associated with the unit.

4.51 There is also a Unit MANIAC Program (L50) that is a supplement to the previously described MANIAC Program (L00). The Unit MANIAC accomplishes maniac functions on specific units. L50 performs validity checks on the unit type and unit number data. The identity of the sense lines to be operated on is obtained from two control tables, the Sense Line Identity Table (HID) and the Type Vector Table (HTY).

4.52 the HTY table contains the address of the sense line data entry in the HID table associated with each unit type. HTY contains one word (24-bits) per unit type. The HID table contains the sense line data needed to perform the Unit MANIAC function on the specified unit type. This data consists of the total number of sense lines, the unit number, and the sense line identities to be acted on.

4.53 The HID table length is dependent on the amount of sense line numbers (SLN's) associated with the system hardware. The table length is determined by the formula: words required = [N+1)/2 ]+ 1. N equals the total number of SLN's. There are two SLN's per word entry (12 bits for each SLN). Word zero of HID is not used.

4.54 If a request is made to set, all sense lines associated with that unit will be set to just-ignore. If a reset request is made, all maniac requests on the sense lines are removed. After the request has been processed, a return will be made to the requesting program. When unit MANIAC is run, the contents of all registers, including the pseudo registers, will be destroyed. L50 always runs with the interrupt system disabled to prevent interruption before the request is performed. Interrupts are enabled before a return is made to the caller.

4.55 MANIAC (L00) calls Unit MANIAC (L50) to perform maniac functions on all interrupt sense lines associated with a particular unit. This interface is accomplished by two macros:

a. SETMAN - used to set the just-ignore indicator bits for all interrupt sense lines associated with a particular unit.

b. RSTMAN - used to reset all indicators set by SETMAN.

SYSCLR

4.56 the System Clear and Start Program (SYSCLR) is a common maintenance program that provides centralized control over initializing or re-initializing the system and various units within the system. The SYSCLR Program (modules L13, L15 and L16) is used initially (at cutover) to place the system into operation. It is also used to re-initialize the system on demand, and to recover the system (or portion thereof) from certain malfunctions and then return it to normal processing.

4.57 The three major reasons for entry into the System Clear and Start Program are as follows:

a. Software bugs, e.g.:

1. A program is in control of the NRA too long.

2. A work area is attached to an incorrect queue.

3. A level two trap occurs.

4. An invalid condition is discovered in the HST table.

b. Catastrophic system malfunctions such as power failures, hardware time-outs, etc.

c. Failures from which no other recovery methods exist.

4.58 The following are requirements of SYSCLR:

a. Start a new system at cutover.

b. Recover the system from any state, if an operable configuration exists.

c. Restore a maximum configuration of operable hardware.

d. Clear and place on-line simplex system configurations until an operable one is found.

e. Establish a duplex configuration (if possible) once an operable simplex configuration is found, by running diagnostics on the off-line hardware and restoring the hardware to service if the diagnostics pass.

f. Recognize when restoration of a duplex system is not possible, therefore leaving a simplex configuration.

g. Find an operable configuration quickly, as normal processing is inhibited until one is available.

h. Read in a fresh copy of core memory from drum, except for hardware switch protected ROM, and initialize writable core areas (junk storage, work areas, etc.).

i. Return gracefully (gradually) to normal processing so that an immediate work area shortage does not occur.

j. Return control to the software system with the system status table reflecting the hardware status of the system.

k. Restart all system hardware.

l. To be stored partially in the switch protected read only portion of core memory.

m. Make provisions for saving some dynamic system information (e.g., trap data table, non-resident area occupant, etc.).

n. Output the data saved [item (m)], if possible.

o. Update lights on the MCC to reflect system status.

p. Initialize drum resident writable areas.

q. Clear all I/O devices to a state acceptable to the I/O programs.

r. Return reorder tone to the calling party (if possible), and when required, return coins for calls dropped.

s. Restart the system after a trap occurs, when no other return is possible.

4.59 The entries into the System Clear and Start Program are:

a. Manual entry initiated by the MCC pushbutton - hardware entry.

b. Timer timeouts - hardware entry (watchdog and off-line timers in the CTP and CCP's respectively).

c. Program controlled entry - software entry.

4.60 The three preceding entries cause the following events:

a. Both CCP's finish executing the current instruction and their timing generators stop.

b. Both CCP's are taken off-line.

c. A delay of 100 microseconds to allow the CCM to become quiescent.

d. Logic in the CCP, CTP, CLP, CMC, AND CMM is reset to an initial condition.

e. The DCU configuration request indicator is toggled for every second clear and start entry.

f. The CTP is taken off-line by a signal sent to the configuration control circuit, which leaves one CCP on-line (a different CCP each time).

g. The on-line CCP will be started at location zero of the Clear and Start Program.

4.61 To return to normal processing in an orderly manner after SYSCLR, a "throttling" mechanism is required to restrict the amount of traffic entering the system. Throttling is necessary due to the possiblity of having a large number of customers awaiting service after the clear portion of L16 is performed. (All calls during this time that did not have a talking path were dropped.

4.62 The traffic is throttled at the originating marker (OM) to control the rate at which originations can enter the system. The OM is slowed by turning it on and off for desired intervals. The system is brought up to its full capability by shortening the marker's off time until it is on continuously.

4.63 After System Clear and Start is completed, 30 words will be outputted on the maintenance teletypewriter. These words will come from the HAK table in core. The data in this table is used by the maintenance man to determine the cause of the clear and start. The program that caused the clear and start will set up all (or a portion) of the table's first 23 words. The first word of HAK contains the program identity.

4.64 The last seven words of HAK are set up by SYSCLR and contain the following information:

a. Word 23 - the first word of DIATAB (HDT table).

b. Word 24 - the second word of DIATAB.

c. Word 25 - the identity of the last program given control by the executive.

d. Word 26 - the priority of the program referred to in (c).

e. Word 27 - the non-resident area occupant, if there was one.

f. Words 28 and 29 - the real time clock (RTC).

4.65 four techniques are used to meet the SYSCLR requirements:

a. First, a software counter called the configuration counter is used to select various hardware subsystems to be placed in service.

b. Secondly, a 5 minute interval called the sanity period is initiated at the start of SYSCLR. Any new SYSCLR occurring during this period is considered to be part of the original. After five minutes has elapsed, the SYSCLR control word is reset (see Table MP8).

c. The third technique is the use of three phases. These phases eliminate the possiblity of a bad maintenance program keeping the system down:

1. Phase one - tries to restore a duplex system.

2. Phase two - attempts to restore a simplex configuration.

3. Phase three - permits manual reconfiguration via the MCC. This is a last ditch recovery method that is used when the first two phases have failed.

d. The fourth SYSCLR technique is to reroute any traps that occur during SYSCLR back to entry line L16X02 to initiate another clear and start.

4.66 For phase 1, (paragraph 4.65, C, 1) repair verification is scheduled on all hardware left off-line unless it is power down or manually overridden from the MCC. The state of the configuration counter is used to select the desired configuration. In this phase, the system will eventually be running completely in sync (except for those portions that have power down or are manually overridden). The complete system will attempt to be brought up by using the repair verification programs.

4.67 The configuration counter is a software counter located in bits 0-7 of the first word of table HAM (the SYSCLR control word, shown in FIG. 8). The eight possible states of the counter are listed in Table MP1. If the PH2 or PH3 bits are not set, the system is considered to be in phase 1 (PH1).

4.68 in phase 2 (PH2 bit set in control word), no repair verification programs are scheduled. The configuration counter will select a simplex configuration. This phase is provided so that a single fault, which is not caught by repair verification will not hamper SYSCLR operation. It is assumed that the fault is either in an "A" unit or a "B" unit and not both, and that each simplex configuration will be tried to get around the fault.

4.69 Phase 3. In phase 3 again no repair verification programs are scheduled and in addition straight A units are selected, unless designated not to be used by the MCC. SYSCLR will remain in phase 3 until the system comes up successfully and returns to phase 1 5 minutes later without having another SYSCLR within that time frame.

4.70 The following paragraphs describe the SYSCLR modules as shown in FIG. 44. The Core Resident Control portion of SYSCLR (L16S and L16V) is part of the hardware switch protected read only memory (HROM). If the emergency restart button at the MCC is depressed or if the WDT is "mishandled," the Clear and Start Bootstrap Module (L16S) will be initiated. This module is used to read in HROM from drum when the memory protect is disabled on the MCC.

4.71 the bootstrap module exists to the Software Entry and Core Resident Control Module (L16U) at entry line L16X01. A software generated clear and start causes an entry into L16U at L16X02. HROM is never refreshed when an entry is made at this point. L16U will load 23 words of the HAK table (see Paragraph 4.51) and pass control to module L16A, Central Processor Clear.

4.72 Entry at L16A01 will reset the memory protect bits in junk storage tables FJB and FJP. Control is then passed to L16B, the MCC Verify and Initialize Routine, to determine if both CCX A and MRLF A have power. This routine will also try to place one CCX (A or B) on-line active and one on-line standby (depending on which CCP is on-line active and which is standby).

4.73 L16B returns control to L16A. L16C, the Power Check Routine, will determine if the central processors are running in simplex or duplex. It does this by checking the on-line sense lines from both CCP's. L16C will also make a on the PCG's and CCX's. The results are written into the power status word in junk storage table FJB (see Table MP10). If both CCX's have power, CCX A will stay on-line. Control will then return to L16A.

4.74 the Software Protect Initialization Module (L13V) receives control from L16A. L13V is used to protect data taken from drum and read into core that was not protected on drum but must protected in core. The L13V module uses table FCS to determine the locations in core to be written into and also the length of the data block taken from drum. L13V will set the memory protect bits for data read in core. This module then exits to L13G.

4.75 the Work Area and Call History Table Initializer Module (L13G) clears all non-image areas of core (areas not duplicated on drum), and after storing various data into a work area, connects the WA to a "hitching post." The hitching post used is actually table FHP, which is used to store the relative work area address. This table will locate the applicable work area. L13W, the Non-Imaged Common Initialization Module, is used by L13G as a closed subroutine to reset memory protect bits for all data in the specified non-imaged core memory data block. L13W will also clear or not clear (depending on a bit in table HAL) the specified data block, and then return control to L13G. Control is then passed to L13D.

4.76 the DCU Selection Module (L13D) selects a DCU to be placed on-line for normal processing. The DCU is selected by referring the DCU selection table, which is a four word table located within module L13D; this table indicates how many DCU's are available for service. L13D calls the MCC Check Routine for DCU's (L13E), which marks the DCU's available or unavailable in table FJB depending on the state of the MCC ignore indicator (in HAM), the inverter failure indicator, and the thermal overload indicators (they indicate that a preset drum temperature has been exceeded). The inverter failure and thermal overload indicators are found in HST. L13E returns to L13D, which will determine how many DCU's (if any) are available for service. One DCU from each installed pair is placed on-line by this module. L13D uses the DCU Configuration Module (L13F) to mark a DCU MOS and OS in HST if it has power down. L13F calls Unit MANIAC (150X02) to set all interrupts (error and ready) from the MOS DCU's to just ignore. This other function of L13F is to schedule repair verification, if necessary, on the out-of-service DCU. Control is then passed to L13H.

4.77 the input/Output Clear Module (L13H) checks the PCG configuration, the MCC override button, and power status conditions to determine which CCX/CCR will be placed on-line. (The status of the MCC manual override buttons has a higher priority than the SYSCLR Program.) If a unit is "manually overridden" it will not be placed on-line, even if SYSCLR determines that it is an operable unit. This feature provides the man at the MCC with the ability to control this portion of the normal software restart procedure. L13H will schedule via DIACON (L20X01), a repair verification program on the off-line CCX. It will also clear and disconnect all equipped CDB's and their associated peripheral adapters; and after a one instruction cycle delay, will clear both CCX's. The I/O Clear Module will place one CCR MOS, viia CONFIG, and exit to L13T. The Ticketing Clear Module (L13T) keeps all taped data on one tape by not reconfiguring the magnetic tape units after a clear and start occurs, L13T exists to L13J.

4.78 the RS common logic unit (CLU) to be placed on-line when the system is brought up. L13J calls L13K, the MCC/RS Status Check Module, to check the status of the CLU's and to mark all RS CLU's available. L13J calls L13R, the RS Clear Module to place one RSCLU MOS (via CONFIG). The other RS CLU is placed on-line. This module also causes all calls in the system that have not been terminated to drop, and reorder tone is returned to the calling parties (lines and trunks). The L13J module then exits to L13L.

4.79 the Terminating Marker Clear Module (L13L) clears the CCR's and the TM's. The TM's are cleared in pairs by sending four words of serial transmission to them. The L13L module exits to the L13P module.

4.80 The Drum Resident Control and Cleanup Module (L13P) schedules programs to update the MCC table and the system status table (e.g., PMSCAN, System Status Table Audit Program, System Clear and Start Cleanup, etc.). L13P schedules localization on the off-line PCG via DIACON if the Trap Return Program called clear and start. If it did not, repair verification will be scheduled on the off-line PCG. The L15 module (System Clear and Start Cleanup) is scheduled by L13P to clear the HAM table and to output table HAK on the TTY. The TTY provides three 10 word dumps of data loaded by the caller. L13P passes control to L13M after the data dumps.

4.81 The Originating Marker Clear Module (L13M) clears both OM's of pair one. It uses L13N, the Interrupt and Sense Line Clear Module, and L13Q, the Phase Threshold Detector Module, as closed subroutines. L13N clears the CLP and CLS (interrupt and sense line circuits). L13Q is used to calculate a phase indicator. The Originating Marker Clear Module initializes system trap locations, enables the software memory protect system, and passes control to the Executive Program's TIME Module (E01X04). This action ends SYSCLR processing and permits the scanning of CPU queues for a new central processor task (the next program to be run).

5. MISCELLANEOUS COMMON MAINTENANCE PROGRAMS

Timed Routine Scheduler

5.01 The Timed Routine Scheduler Program (TRS - L18 and L19) handles the scheduling of any routines necessary to be run. It also permits the scheduling of these routines at various predetermined times without any external command to do so. The scheduling will be performed by the DPU Scheduler (E01), an executive program module. The required timing functions for TRS are also provided by the executive.

5.02 The two major tables accessed by the TRS program are:

a. Entry Line Address Table (ELA) and,

b. TRS Calendar Table.

5.03 The Entry Line Address Table contains the address of the program to be run by the TRS program (Table MP10). The entry line index and the software priority of the program is also contained in the ELA table. This table contains one word entries. Each entry is associated with a different routine. The ELA table is directly associated with the TRS Calendar Table (Table MP11) on a one-to-one basis. That is, the first entry in the calendar table (two words per entry) is associated with the first entry in the ELA table. Both of these tables are drum resident.

5.04 The TRS Calendar Table is interrogated every hour by TRS. The data within is modified, when necessary, and may be read and/or printed out. Scheduling of routines will be accomplished on the day(s) indicated by the DOW field when the BWF bit is set and the BWI bit matches the state of the biweekly counter (BWC).

5.05 the biweekly counter is one word long and is located in core memory. It is used to schedule routines on a biweekly basis. The BWC keeps track of the "biweeks" by complementing one bit each Sunday at midnight.

5.06 The TRS program is entered every hour, at entry line TRSTRT, by the executive's Real Time Clock Module (E05). The TRS will then check the TRS Calendar Table for any routines to be run that hour. This table contains data that indicates when to run each routine; e.g., the day(s) of the week, the month(s) of the year, and the hour of the day.

5.07 When it is determined that the routine associated with a certain calendar table entry is to be scheduled, the TRS program obtains the necessary information to schedule this routine from the ELA table. The data obtained and the entry line identity are placed into a work area and the routine is scheduled (via the executive).

5.08 Each calendar table entry can be modified by a requesting program (software control) or by a TTY input request (manual control). The two entry points into the TRS program that are used to perform these calendar table modifications are called TRIOUP and CALMOD. The former is entered for TTY initiated modifications and the latter is entered for modifications initiated under software control.

5.09 TRIOUP is scheduled by the I/O Handler Program (F27) via a TTY input request. The inputted information will contain the calendar table entry number and the month, day, week, and hour that the routine will be run. CALMOD is scheduled by a program desiring to modify a specific calendary entry. The data needed to schedule this entry is located in the associated work area; i.e., calendar identities, layout of data to be placed in words 0 and 1 of the associated calendar, and the identity of a program to be scheduled if the request is unsuccessful. Invalid requests cause a return to the requesting program's error return or they initiate an error message output on the TTY, depending on the source of the request.

5.10 The TRS provides a readout of a particular calendar table entry (if requested by a program), or it provides a printout, via the TTY, of any or all of the calendar table entries (if requested manually). A software request uses the CALDMP entry line to access a particular table entry on drum. The requesters work area must contain the calendar table entry identity and the identity of the program is that to be scheduled and passed the calendar table data.

5.11 The TRDUMP entry line is used when a manual request has been made to dump the contents of any one or all of the calendar table entries via the TTY. The requesters work area will contain the particular calendar table entry identity or an indication that all table entries are to be printed. If a CALDMP or TRDUMP request is found to be invalid, an error output TTY message will be sent (for manual requests) or an error indication will be returned to the requesting program in the associated work area.

Auditing Programs

5.12 The auditing programs perform software checks on the system software. They perform high level system checks and report any discrepancies encountered. Auditing programs reside on drum and are transferred to core to be executed at specific time intervals. These programs perform a function related to the software similar to the function that the routining program perform on the hardware. Audits are scheduled by DIACON but are not controlled by DIACON during their processing.

5.13 Auditing programs check various tables by printing out their contents via a TTY for analysis by maintenance personnel, or they may make their own validity checks on the tables. The auditing programs perform software checks on the following areas of core memory:

a. Switch protected read only memory

b. Work areas

c. MANIAC tables

d. System status table

e. Sender/receiver assignment tables

f. Call history tables

5.14 Auditing programs also perform timing checks. They check the input/output device response time and also the nonresident area of core to prevent a program residing in this area more than a predetermined length of time.

5.15 The Switch Protected Read Only Memory (SP ROM) Audit Program (L53) ensures that programs and data residing in the SP ROM are valid. To accomplish this, each word of the switch protected ROM is compared with its core image residing in a dedicated location on drum.

5.16 The SP ROM Audit Program can be requested by another program or manually, via a TTY input message. When L53 has completed, an exit is made to the Executive Program via the DPU Scheduler's RESKED entry line (e01X06) to schedule the executive's Output Format Module (F07). F07 is scheduled upon completion of a TTY initiated audit or due to errors encountered during a SP ROM audit (either TTY or program initiated).

5.17 The Work Area Audit Program (L29) ensures that all work areas in the EAX system are accounted for and are linked to the proper queues. L29 interrogates all queues, call history tables, and hitching posts (hitching posts (hitching posts are one entry queues used for a specific system funtion). The current count of the entries in each queue (as recorded in the queue root) is compared with the actual count made. The Work Area Audit Program will return any lost work areas found to the proper spare queues. This program will be called by the Lamplighter Program when a certain predetermined amount of work area overload lamps on a MCC panel are illuminated. SYSCLR will be called when various conditions are encountered during the processing of L29, e.g., an entry appears in more than one queue, more than one work area is found linked to a hitching post, etc.

5.18 The MANIAC Program's tables (Paragraphs 4.43 and 4.51) are checked by the MANIAC Audit Program (L40 and L41) to determine if they are being properly used by those programs that access them. The MANIAC audit modules are drum resident.

5.19 The System Status Table Audit Program (L59) insures that all data located in the HST is correct. The software status of the system represented in the HST table is compared to the hardware status represented by the sense lines.

5.20 The Sender/Receiver Audit Program (F61) performs checks on the Sender/Receiver Assignment Tables. These tables contain a software indication of the busy/idle and on-line/off-line status of the senders/receivers. F61 compares this software status to the hardware status. The Sender/Receiver Audit Program makes two types of checks. The first is to determine if too many of a certain type of sender or receiver are marked off-line. The second check verifies that busy/idle table matches the true status of the hardware. F61 will correct any mismatches that are detected.

5.21 The Call History Table Audit Program (F60) verifies that the software indication of each RJ's off-line busy status is consistent with the actual hardware status. F60 will check the hardware status of an RJ whose corresponding call history table indicators imply busy or off-line. If the software does not agree with the hardware, the software will be corrected. An error message will be outputted via the TTY, stating the nature of the error and the RJ and office section involved. F60 is scheduled via DIACON or initiated by a TTY request.

5.22 The Input/Output Handler Time-out Audit Program (L52) provides a software I/O device time-out check. L52 monitors device response time (the time an I/O device takes to respond to a requested I/O operation). The I/O Handler Time-out Audit provides a "software time-out interrupt" for each I/O device. The L52 module does this by notifying the I/O Handler Program (F27) if a device does not respond within a predetermined time interval. L52 is called every 167 milliseconds by the executive (E04).

5.23 the Non-resident Area Audit Program (L38) functions as a software watchdog timer. It prevents the same program from occupying the non-resident area of core for over a predetermined time interval. If the time interval is exceeded, the System Clear and Start Program will receive control.

Error Count

5.24 The Error Count Program - L26 (ERRCNT) provides centralized control over the incrementing, reading, or resetting of counters. By using this common program to control these functions, redundancy of storage is prevented. Programs call ERRCNT to have their respective counters reset, read out, and/or printed out via TTY. ERRCNT can also increment a counter and print out its contents (via TTY).

5.25 some of the programs that use the ERRCNT program to reset various counters are:

a. The Timed Routine Scheduler (L18) - every hour and every 24 hours.

b. The Minutes Timer (E09) - every 5 minutes.

c. The Interval Timer Interrupt Processor (E04) - every 250 milliseconds.

Lamplighter

5.26 The Lamplighter Program (LMPLTR-L25) provides software control over the lighting and extinguishing of lamps associated with the miscellaneous device adapter (MDA) of the MCC. LMPLTR performs the following functions:

a. maintains and updates a lamp status table (HLS). See Table MP12.

b. calls the MCC I/O Handler Program (MCCIOH-V01) to turn a lamp on or off.

c. schedules the Work Area Audit Program (L29), via DIACON, when a certain predetermined number of work area overload lamps (for each size work area) are lit. See Paragraph 5.17.

d. enables the HLS table to be printed out on the TTY by a TTY input request.

5.27 The lamps associated with the MDA that are under software control are the:

a. alarm lamps

b. printout disable lamps

c. work area status lamps

e. system configuration lamps

f. miscellaneous trunk group lamps

5.28 The Lamplighter Program is executed as a closed subroutine; that is, it will receive control from the requesting program, perform its requested tasks, and return control directly to the caller. The LMPLTR contains the present software status of each lamp. LMPLTR can update this lamp status after recovery from a hardware fault. The contents of HLS can be printed out via a TTY request (only the first six words). This is done to provide a means of verifying that the lamps that are lit coincide with their respective status recorded in the table.

5.29 LMPLTR will generate the proper data needed to perform the desired lamp operation and reflect the new status of the lamp in the HLS table. To accomplish this, it required the identity of the lamp and whether it is to be turned on or off. Using the data, LMPLTR will obtain the correct word from the HLS table, modify the correct bit in the table, and schedule the MCC I/O Handler to change the status of the specified lamp.

5.30 LMPLTR can be entered at two points, L25X01 and L25X03. The L25X01 entry line is used to turn the lamps on or off. When L25X01 is entered, LMPLTR converts the requested lamp code number into a word and bit position contained in the first six words of the HLS table. If the lamp is to be turned on, a logic 1 will be placed in the appropriate bit position. If it is to be turned off, a logic 0 will be placed in the lamp bit position. The lamp will be turned on or off as requested. The entire HLS table word will be updated by the MCCIOH program.

5.31 The L25X03 entry to LMPLTR is used to update the lamp status on the MCC panel from the software status in HLS. This update must be performed after each power failure affecting the MDA, or after each time the power to the MDA was turned off for repair.

Power Monitor Scan

5.32 If a power failure occurs, it will cause a power alarm indication. Until the cause of the power alarm is removed, no other power alarms can be reported via that interrupt line (level one). In order to insure that all power alarm conditions are reported to the computer, a periodic scan of the data lines (power monitor scan) is initiated (via DIACON) as a result of the occurrence of the first power alarm interrupt. This scan will continue, by the Power Monitor Scan Program (PMSCAN), until all power alarm circuits provide normal conditions.

5.33 PMSCAN is used to reconfigure the system after a power failure occurs. It is scheduled, via DIACON, due to a system clear and start, MCC unit clear and start (on the MDB or PMA), or a major or minor power alarm interrupt (PM adaptor interrupt - PA of the MDB). PMSCAN is also scheduled whenever an I/O device fails to return a response to the I/O Handler within a certain time period after a communication has been made to the device.

5.34 The Power Monitor Scan program is made up of two modules (L30 and L51), one located on drum memory and the other in core. The majority of PMSCAN is found on drum. The preliminary scan "portion" and the "drum power portion" are located in core. The preliminary scan software checks the system power status to determine if any changes have occurred since the last scan. The drum portion of PMSCAN is called only if a change was detected, thus keeping the running time down to a minimum.

5.35 PMSCAN accesses three tables:

a. The Power Last Look Table - contains a representation of the system power status as it looked the last time PMSCAN ran. This data is compared with the present status to determine what changes (if any) were made.

b. Valid Power Failure Source Table - contains a bit set for each valid source of power from the PMA.

c. Drum to DCU Conversion Table - contains a map of the Drum/DCU assignments.

5.36 PMSCAN insures that communication with the MCC is possible. It does this by checking the power fail sense lines of the CCX, the MRLF, and the MDCF. If a power failure occurred in any of these units, PMSCAN will check the sense lines on a periodic basis until power is restored. If communication with the MCC is possible, PMSCAN will read the power status words of the PMA and MDA. (This is accomplished by using the MCC I/O Handler Program.) The power status words will indicate which power sources are valid and equipped.

5.37 The present status of the power sense lines and data sense lines are compared with their previous status (checked during PMSCAN's last run) to determine if there had been a change. The previous status is checked in the System Status Table (HST).

5.38 if a power status change occurred within the CMC or the DMS, PMSCAN will call CONFIG. If the power status checks all right for the CMC and DMS, the drum portion of PMSCAN will be scheduled to check the rest of the subsystems. For all power failures detected on a unit (CMC and DMS included), CONFIG is called to place the unit and all other related units OS (out-of-service) and MOS (maintenance-out-of-service) in table HST. CONFIG insures that both units of a pair are not taken out of service to normal processing.

5.39 PMSCAN will call the Maintenance Interrupt Access Program (MANIAC) to set a bit in table HJI to just-ignore all interrupts from any OS subsystems. PMSCAN also calls the I/O Handler Program associated with the unit or device that had the power failure. The I/O Handler is informed of the power down condition so that it may perform any necessary operations. A message is outputted via TTY to indicate that a power failure has occurred on a specified unit.

5.40 If a subsystem has gone to a power up status, CONFIG is informed that the unit is no longer OS but is still MOS. CONFIG indicates this status change is table HST. An output message via the TTY will indicate that power is restored.

5.41 If any subsystem is in a power down status after PMSCAN has run, control will be passed to the Interval Timer Request Acceptor Program (E02). E02 will run PMSCAN at one second intervals until all subsystems have power up. PMSCAN will call RELEAS (E01X03) which relinquishes control to TIME. The Power Monitor Scan Program will be called again when the next power failure interrupt occurs.

TABLE MP1 ______________________________________ Glossary of Softwave Terms Found in Figure 1. MNEMONIC DEFINITION ______________________________________ CHA Call History Table Audit CNF Configuration Control Audit DVD Drum Versus Drum Audit HSC Hardware Protected Read-Only- Memory Audit MAN Manual Audit MDSPD Space Divided Equipment-Special PBPROC Pushbutton Processor PMSCAN Power Monitor Scan RST Register-Sender Trouble SPRCR Receiver-Special SPSCR Sender-Special SPTRS Time Routine Scheduler-Special SRA Sender/Receiver Audit TRPOUT Trap Out Program Audit WAA Work Area Audit ______________________________________

TABLE MP2 ______________________________________ DCU/RS Configuration Scheme. CONFIGURATION COUNTER STATE CCPA CCPB ______________________________________ 1 DCU1 DCU3 RS1A DCU1 DCU3 RS1A 2 DCU2 DCU4 RS1A DCU2 DCU4 RS1A 3 DCU1 DCU4 RS1A DCU1 DCU4 RS1A 4 DCU2 DCU3 RS1A DCU2 DCU3 RS1A 5 DCU1 DCU3 RS1B DUC1 DCU3 RS1B 6 DCU2 DCU4 RS1B DCU2 DCU4 RS1B 7 DCU1 DCU4 RS1B DCU1 DCU4 RS1B 8 DCU2 DCU3 RS1B DCU2 DCU3 RS1B ______________________________________ ##SPC1## ##SPC2## ##SPC3## ##SPC4## ##SPC5## ##SPC6##

TABLE MP12 ______________________________________ Lamp Status Table (HLS). 23 0 WORD ______________________________________ LAMP STATUS WORD 0 0 LAMP STATUS WORD 1 1 LAMP STATUS WORD 2 2 LAMP STATUS WORD 3 3 LAMP STATUS WORD 4 4 LAMP STATUS WORD 5 5 WORK AREA STATUS 6 PREVIOUS LAMP STATUS 7 WORD NUMBER 8 BIT NUMBER 9 WA LAMP COUNT 10 ______________________________________

DIAGNOSTIC CONTROL PROGRAM (DIACON) DESCRIPTION AND USER'S DOCUMENT FIG. 45

I. introduction

the Diagnostic Control Program (DIACON) will provide centralized control over the maintenance programs executing on the base level and falling into one of the following categories:

a. Isolation (on base level)

b. Localization

c. Repair Verification

d. Routining

e. Unit Clear and Start

f. Audits

g. Certain other "special" programs

It is DIACON's function to:

1. enforce a one-at-a-time scheduling for maintenance programs that may interfere with one another. These will generally be those programs falling into categories (a)-(e) above.

2. provide a means of insuring that the programs under its control can be scheduled even though no work areas are available at the moment.

3. provide some priority scheme for the scheduling of these jobs.

4. provide a means of informing some jobs that they should abort themselves due to system occurrences possibly causing them troubles (such as traps) or requests for jobs of a more important nature having been requested (such as isolation).

Many times in this document, particularly in the macro definitions, reference will be made to a "job number". This is the name that has been given the identification of a particular job. The job number is developed from the unit type and the unit number relative to the type.

This number is the one used to find any information associated with that job in the DIACON tables. The job number as described above and those assigned to the special jobs and audits are essentially their bit number in the DIAJOB table.

Ii. diacon description

at some point in various programs it is determined that a maintenance program is to be scheduled. Requests for the scheduling of those programs, under the control of DIACON, will be made to DIACON via the macros provided (see Section III). Upon receipt of such requests, DIACON will check the validity of the request and, if invalid, return to the requestor with information pertaining to the reason for disallowing the request (refer to the macro descriptions). At present there appears to be only three reasons for disallowing requests and they are:

1. The request was made on a unit that has no maintenance programs (controlled by DIACON) associated with it. This problem is greatly limited by the allowable parameters in the macros and the scheme for re-assignment of job types as described in Appendix II.

2. the request is for a job on a unit that has a previous request of a higher, mutually exclusive, priority (see Appendix II).

3. the request involved a repeat test request and a repeat test is presently in progress (Only one repeat test is allowed in the system at a time).

If the request is found valid, which should be the general case, the appropriate flag in the DIAJOB table (Table DN1) will be set indicating which unit and what type of request has been made. The data to be passed to that maintenance program, if any, will be stored in the proper DIADAT table entry (Table DN3). The DIAFLG in the EXEC's job queue will be set informing the EXEC that DIACON has work to do (refer to Appendix V for a description of the DIAFLG mechanism).

In this manner as many requests as necessary may be made to DIACON without interference. Each request being saved for processing, in its turn, as it is made.

At the time of a request no work areas are needed. No work areas will be needed for this job until it is to be scheduled by DIACON.

During the normal processing of its job queues, the EXEC will encounter the DIAFLG set by DIACON. At this point, control will be transferred to DIACON. DIACON will interrogate the DIAJOB table and, finding a flag set (work to be done), get a work area. If unable to get a work area, the DIAFLG will be set again and control returned to the EXEC. Once a work area is obtained, the flag that was set will be checked for a special job. "Special" jobs are those scheduled by DIACON but not having control of DIACON (or DIATAB) during their execution (such as Work Area Audit from Lampliter, the trap output program, etc.). This is done via the DIAVEC table (Table DN2). If the job is special it will be scheduled immediately. The DIAFLG is set again so that DIACON will be re-entered to look for more work, and control returned to the EXEC. If the job were not a special one the drum resident job processing portion of DIACON will be scheduled (at EXEC job queue priority 0).

Once the job processor is read into core and given control, it will interrogate the DIAJOB table for work (non-special jobs only). Work is found by scanning the types of jobs requested in the following order:

1. isolation

2. unit clear and start

3. localization

4. repair verification

5. routining

6. audits

If the first job found is any of the types 1-5 above, DIACON will perform any checks of the system status dictated to be performed for this job by this job's associated entry in the DIACTL table (Table DN7). The checks that could be performed are of two types:

1. System Status table checks - verifying that the system configuration and other indications available in this table are such that this job can run.

2. Sense Line Checks - verify that specific sense lines are in a pre-determined states (generally used to check on/off line status but not limited to such). If any of these checks are unsuccessful that job will not be scheduled but the request will remain in the DIACON tables for processing at a later time. DIACON will then find the next job to process. If there are no other jobs the DIAFLG will again be set and control returned to the EXEC.

If all checks are successful, the program requested will be scheduled on the proper priority EXEC job queue qith the proper size work area. In addition, the scheduled program will be assigned the use of DIACON's DIATAB table (see Table DN4) and become the DIACON client at this point. This job's entries in both the DIAJOB and DIADAT tables will be removed. Any data to be passed to this program (the client) will be stored in the designated words of the DITAB table. The exact layout and quantity of this data will be defined by the associated maintenance programs. Also in the DIATAB table will be this job's number. In order for the client to determine the particular unit to be diagnosed, a constant for each type of unit will have to be subtracted from the job number.

If the job found had been an audit, there would have been no system status checks. Audits have only one word of data to be passed (found in the DIALOC table) and it is passed in the work area. Audits, it is felt, present no interference problems and are therefore scheduled to be run without becoming DIACON clients. As such, they are never assigned the DIATAB table and never have control of DIACON. It is possible that an audit could be running concurrently with other maintenance programs.

The DIATAB table has two additional areas in it. One, an area of about 30 words to be used by the DIACON client as he sees fit. He can use this area of DIATAB as "long term junk storage" for as long as he has control of DIACON. A client will have control of DIACON from the time he is scheduled to the time that he informs DIACON that he is finished. This period can span several real time breaks during which the "Non-Resident Area" will be given up. However, in order to protect DIACON from being tied up forever, an overall timer will be used to time the client. The period of this time is presently 2 minutes. Should this limit ever be exceeded the system will go through a System Clear and start.

The second area is set aside for the client to store the information necessary for him to abort himself gracefully. Such things as "abort entry lines", addresses as of work areas being used, subsystem status indicators, etc., can be stored here.

An "abort" scheme has been introduced into the system primarily to inform a maintenance program in progress, that could be relatively long in terms of real time control of DIACON, that a maintenance program of greater importance has been requested to be run (e.g. isolation). The scheme also provides a means of information the program in progress that some system occurrence, that may have an adverse effect on the test results, has occurred (e.g. a trap). In the latter case, this is the only way for the program in progress to be informed of the occurrence.

The abort scheme to be employed by DIACON and its clients is as follows:

1. In the DIATAB table there are several abort indicators. Each client program must check these indicators before it takes any real time breaks (gives up control of the CCP). If any are set, the client should abort his program by "cleaning" himself out of the system gracefully. This will involve the resetting of the subsystem, releasing of any work areas being used, re-scheduling itself via DIACON, if possible, and any other necessary actions.

2. The abort program does not have to be in core at this time of the decision to abort. It may be a separate drum resident program.

3. It is possible that the system configuration has changed since a maintenance program was started. Certain of these changes may cause the program to arrive at an erroneous conclusion and remove a good unit from service. In an effort to minimize this effect, each maintenance program will check the system status table at the completion of a test if the test failed. If such a change had occurred, no trouble report should be generated and the test should be treated as if it had been successful.

Once the scheduled program has been given control he must update the control information in the DIATAB table indicating his having been started. This is done by calling the SKEDIP macro.

If a maintenace program wishes to run in several segments, he may re-schedule himself through DIACON. The necessary information pertaining to which segment is to be run each time that DIACON schedules him can be passed in the variable data (possibly by different "test numbers") stored and passed via the DIADAT table.

Control of "repeat tests" is performed by DIACON. An indivicator is passed to the client as to whether or not the request is a repeat test so that any special actions required for repeat tests can be initiated by the client. The re-scheduling of requests and the "start" and "stop" printouts required are controlled by DIACON.

At the completion of the diagnosis, whether aborted or not, the client must inform DIACON that he is finished (via DIARLS macro) and then give up control to the EXEC.

Iii. diacon interfaces

contained in this section are the macros used by all programs to communicate with DIACON. The following is a list of the macros provided and their functions. An asterisk (*) indicates the associated programs run with interrupts disabled.

Diarqt* - request a maintenance program to be scheduled via DIACON.

Diarmv* - remove a maintenance program request from DIACON.

Audrqt* - request an audit to be scheduled via DIACON.

Audrmv* - remove an audit request from DIACON.

Skedip* - reset the "SKED" indicator and set the DIP indicator in DIATAB.

Rptstp - stop the repeat test in progress.

Diarls - release DIACON and DIATAB

Diabrt - abort job if specified program is present DIACON client.

Diatrp - trap has occurred.

Most of these macros will generate branches to subroutines provided by DIACON. All are closed subroutines, that is, they will always return control. No work areas are required for any interface with DIACON via these macros.

1. MACRO NAME: AUDRMV - remove an audit request from DIACON.

2. purpose: to provide the necessary interface with the DIACON program to remove a request for a specific audit that had previously been requested.

3. MACRO CALL: AUDRMV P1

4. `macro parameters:

p1 = audit name (see appendix IV for a list of valid values for this parameter).

5. ADDITIONAL PARAMETERS:

None

6. MACRO RETURNS:

1. original contents of all registers are destroyed.

2. Return will always be made to the client as macro call plus 1. At this time, the "A" register will contain a result code as follows: result code meaning ______________________________________ .phi. request has been honored .phi.1.phi. request denied due to in- valid job number ______________________________________

7. Only one Repeat Test is allowed to be performed at a time in the system. Repeat tests that run until they are stopped should only print start and stop messages. Repeat tests that run until a malfunction is encountered should also print the trouble message of that malfunction. The Start and Stop messages will be generated by DIACON.

8. all DIACON clients are limited by an overall timer (at present = 2 minutes). On the occurrence of a timeout of this timer, the system will go through a System Clear and Start.

9. Before any maintenace program replaces a unit into service (for normal processing) all MANIAC requests for that unit must be removed.

V. tables

diacon makes use of several tables to perform its function. A brief description of each follows and a pictorial description of each is attached.

Table dn1 - diajob - this table contains one bit for each unit to be diagnosed in each of the allowable categories; one set of bits for isolation (and special) requests, one set for unit clear and start requests, one set for diagnostic requests (localization/repair verification/routining) and one set for audits. The table is used to indicate "work to be done" and on which unit.

Table dn2 - diavec - this table is used to determine which job numbers are valid and, if valid, either point to the appropriate entry in DIADAT, for data storage, or indicate a special job.

Table dn3 - diadat - this table is used to store any necessary information to be passed from requestor to requested program.

Table dn4 - diatab - this is a dedicated block of core to be assigned to the DIACON client for his use. This is not a work area and cannot be used for linkage to queues.

Table dn6 - diactl - this is DIACON's control table where the program to be scheduled, its work area size and necessary system configuration information is found.

Table dn7 - dialoc - this is a "vector table" used by DIACON to find the proper entry in DIACTL for a given job.

Table dn8 - rptctl - this is the word used by DIACON to control a repeat test.

1. MACRO NAME: AUDRQT - request an audit to be scheduled via DIACON.

2. purpose: to provide the necessary interface with the DIACON program which will retain the request. At some later time the audit will be scheduled.

3. MACRO CALL: AUDRQT P1

4. macro parameters:

p1 = audit name (see appendix IV for a list of valid values for this parameter).

5. ADDITIONAL PARAMETERS:

None

6. MACRO RETURNS:

1. original contents of all registers are destroyed.

2. Return will always be made to the client at macro call plus 1. At this time, the A register will contain a result code as follows:

result code meaning ______________________________________ .phi. request has been honored .phi.1.phi. request denied due to invalid job number ______________________________________

1. MACRO NAME: DIARMV - remove a maintenance program request from DIACON.

2. purpose: to provide the interface with the DIACON program to remove a request for a specific job that had previously been requested.

3. MACRO CALL: DIARMV P1, P2

4. macro parameter:

p1 = type of unit (see appendix I for a list of valid values of this parameter).

P2 - type of job (see appendix II for a list of valid values for this parameter).

5. ADDITIONAL PARAMETERS:

1. index register 2 must contain a unit number relative to the type of unit (numbering for this purpose begins with 0).

6. MACRO RETURNS:

1. original contents of all registers are destroyed.

2. Return will always be made to the client at macro call plus 1. At this time, the A register will contain a result code as follows:

result meaning code ______________________________________ .phi. request has been honored .phi.1.phi. request denied due to invalid job number .phi.11 request denied due to invalid job type .phi.12 request denied due to non-existent job ______________________________________

1. MACRO NAME: DIARQT - request a maintenance program to be scheduled via DIACON.

2. purpose: to provide the interface with the DIACON program which will retain the specific request and its associated information. At some later time this maintenance program to be run will be scheduled.

3. MACRO CALL: The macro may be called in two ways:

A. diarqt p1,p2,p3,p4,p5

or

B. diarqt

4. macro parameters: for call A

P1 = type of unit to be diagnosed. (See Appendix I for a list of valid values for this parameter).

P2 = type of job to be run (See Appendix II for a list of valid values for this parameter).

P3 = source of request (See Appendix III for a list of valid values for this parameter).

P4 = repeat Request Code (See Appendix IV for a list of valid values for this parameter).

P5 = raw data dump request (See Appendix VII for a list of valid values for this parameter.)

For calling sequence B

If no parameters are specified then it is assumed that the above parameters, "ORed" together, are in pseudo register ERG001 before the macro call.

1. MACRO NAME: RVPSTP - Stop the Repair Verify request in progress.

2. PURPOSE: To provide the necessary code to stop a repair verify repeat test which is in progress and extinguish the Repair Verify Repeat lamps. If the test being repeated is in progress, that will be the last test but that test will not be aborted.

3. MACRO CALL: RVPSTP

4. macro parameters: none

5. ADDITIONAL PARAMETERS: None

6. MACRO RETURNS:

1. original contents of all registers are destroyed.

2. Return will always be made to the client at macro call plus 1.

5. ADDITIONAL PARAMETERS:

1. index register 2 must contain a unit number relative to the type of unit. (numbering for this purpose begins with 0).

2. index rsegister 1 must contain the address of the 1st word of data to be passed to the requested program, if any data is to be passed in addition to the data passed in the "Q" register. The quantity of dats is a pre-determined quantity.

3. the Q register must contain the information to be stored in the 1st word of the DIADAT entry for this program (see the description of the DIADAT table for a definition of the layout of this word - DIAGWD - in table DN3).

6. macro returns:

1. original contents of all registers except ERG002 and ERG003 are destroyed.

2. Return will always be made to the client at macro call plus 1. At this time, the A register will contain a result code as follows:

Result Code ______________________________________ .phi. request has been honored 1 job type has not been specified (zero) 2 job type out of range (too big) 3 invalid job number (too big or zero) 4 no such job in DIACON 5 invalid job type (not such job on this unit) 6 only one repeat or repeat-quit at a time 7 only one repair verify repeat at a time 10.sub.8 job requested is routining and verify is in tables 11.sub.8 job requested is routining and localization is in tables 12.sub.8 job requested is routining and higher priori- ty job is in tables ______________________________________

Iv. constraints on diagnostic programs

1. all units to be diagnosed must be MOS (Maintenance Out of Service) when the maintenance program is running. Programs requesting Isolation, Localization or Repair Verification must place the unit MOS at the time of the request. Programs performing Routining must place the unit MOS before testing is started.

2. Isolation requests are allowed on all markers simultaneously. All other requests (for RS isolation, localization, repair verification and routining) are only allowed on one of a pair. (See appendix II).

3. all diagnostic programs will use the high priority I/O queues.

4. All programs expecting to use DIATAB must be scheduled via DIACON.

5. all programs scheduled by DIACON must check the abort indicators (in DIATAB) before taking any real time breaks.

6. All programs failing a diagnosis shall check the system status table at the end of their tests for a system configuration that could have caused the failure. If such a configuration is found, no printout of the failure should be made and the test should be treated as successful (e.g. the unit restored to service).

1. MACRO NAME: DIARLS - release DIACON and DIATAB.

2. purpose: at the end of each DIACON client program (completion or aborted), DIACON must be informed so that he may begin processing any other work he has waiting to be scheduled.

3. MACRO CALL: DIARLS

4. macro parameters:

5. additional parameters:

1. the program making this request must have control of DIATAB at this time.

6. MACRO RETURNS:

1. original contents of all registers are destroyed except index register 1.

2. Returns will always be made to the client at macro call plus 1.

3. DIATAB will be zeroed.

1. MACRO NAME: SKEDIP - reset the SKED indicator and set the DIP indicator in DIATAB.

2. purpose: to provide the necessary code (expanded in the client program) to change the activity indication in the DIATAB table.

3. MACRO CALL: SKEDIP

4. macro parameters:

none

5. ADDITIONAL PARAMETERS:

None

6. MACRO RETURNS:

1. return is always at macro call plus 1.

2. The original contents of the A register is destroyed.

1. MACRO NAME: DIATRP - notify DIACON that a trap has occurred.

2. PURPOSE: To enable trap handlers to notify DIACON that a trap has occurred.

3. MACRO CALL: DIATRP

4. macro parameters:

none

5. ADDITIONAL PARAMETERS:

None

6. MACRO RETURNS:

1. no registers are affected.

2. Return is made at macro call plus 1.

1. MACRO NAME: RPTSTP - stop the repeat test in progress.

2. PURPOSE: To provide the necessary code (expanded in the client program) to stop a repeat test which is in progress and extinguish the Repeat test in progress lamp. If the test being repeated is in progress, that will be the last test but that test will not be aborted.

3. MACRO CALL: RPTSTP

4. macro parameters:

none

5. ADDITIONAL PARAMETERS:

None

6. MACRO RETURNS:

1. original contents of all registers are destroyed.

2. Return will always be made to the client at macro call plus 1.

1. MACRO NAME: DIABRT - abort job is specified program is present DIACON client.

2. PURPOSE: If a specific need to abort a particular job arises, this is the interface to be used to inform DIACON of the need. If the specified program is the present DIACON client, he will be told to abort via an abort indicator in the DIATAB table (ABRT).

3. macro call: diabrt p1

4. macro parameters:

p1 = type of unit being diagnosed (see Appendix I for a list of valid values of this parameter).

5. ADDITIONAL PARAMETERS:

1. index register 2 must contain a unit number relative to the type of unit and a code for the type(s) of job being run on the unit. This info must be formatted to coincide the format of this information in DIATAB.

6. macro returns.:

1. original contents of all registers are destroyed. 2. Return will always be made to the client at macro call plus 1. At this time, if the A register is non-zero the request will have been honored and the abort indicator set. If the A register is zero, then the request was not valid (e.g. the specified client was not the DIACON client.)

APPENDIX I

Contained below is a list of type of units and the corresponding code to be used in DIACON macros. ______________________________________ Code Type of Unit ______________________________________ SPSCR System Clock Alarm Rcy. SPRCR Real Time Clock Alarm Rcy. MDCCR Communication Register MDCCX Channel Multiplex MDCDB Channel Device Buffer (for TTY's and paper tape units.) MDCMC Core Memory Control MDCTT Teletypewriter Peripheral Adapter MDDMS Drum Memory System MDMDA MCC Display Peripheral Adapter MDMDB Maintenance Device Buffer (MCC) MDMRA MCC MRS Peripheral Adapter MDMRK Marker (O.M. or T.M.) MTMTA Magnetic Tape Peripheral Adapter MDPBA MCC Pushbutton Peripheral Adapter SPPBP Pushbutton Processor Program MDPCG Processing Configuration Group MDPMA MCC Power Monitor Peripheral Adapter MDPTA Paper Tape Peripheral Adapter MDRRS Register-Sender MDSPA Ticketing Scanner Peripheral Adapter MDTDB Ticketing Device Buffer MDCTP Third Party SPVMS Voltage Monitor Scan Program MDLPA Line Printer Peripheral Adapter MDCRA Card Reader Peripheral Adapter SPITP In-test program MDRST Register-Sender System Trouble ______________________________________

For MDCTT when identifying these peripheral adapters by unit number the "Office Administration TTY" with the low speed paper tape punch/reader will be number 1 and the maintenance TTY will be number 0.

For MDPTA when identifying these peripheral adapters by unit number the reader will be number 1 and the punch will be number 0.

APPENDIX II

Contained below are the codes used to indicate a type of job and the meaning attached to that job type:

Code Job Type ______________________________________ JTISO isolation program JTLOC localization class of program JTRPV repair verification class of pro- gram JTRUT routining class of program JTCAS unit clear and start class of pro- gram JTSP1 Special job to be run on Diagnos- tic level JTSP2 Special job to be run on C & S level JTSP3 Special job to be run on Isolation Level ______________________________________

A specific job classification should be assigned to a job request which will determine its priority within DIACON's scheduling scheme. Those classes of programs indicated by JTLOC, JTRPV and JTRUT are mutually exclusive and override each other in the following manner.

A. the JTLOC class will override both JTRPV and JTRUT previous request.

B. the JTRPV class will override the JTRUT class but not the JTLOC class.

C. the JTRUT class will not override either JTLOC or JTRPV classes.

D. a second request of the same class will override a previous request on the same device. This is true for all classed of requests (JTISO, JTLOC, JTRPV, JTRUT and JTCAS).

Any request that is overriden is lost from the system and there is no record of it or the fact that it was lost. Another consideration to be given to a job classification is the manner in which the maintenance program scheduled, as a result of the request, will handle the job. This is meant to imply that the type of request being made is not an arbitrary decision but must be coordinated with the designers of both the DIACON program and the maintenance program to which the request will be passed.

It should be noted that, in the "operational EAX program" whenever a request for an invalid or non-existent job type is made, that job type request will be modified according to the following table. The only types of jobs assumed to always be existent in an operational EAX program are those in the JTISO (isolation or special) and JTCAS (unit clear and start) classes. ______________________________________ Original Modified type type JTLOC a printout of the request will be made JTRPV JTCAS JTRUT reported to user as "invalid job type" ______________________________________

It should also be noted that DIACON will allow requests for marker isolation programs on all units. Register-Sender isolation, localization, repair verification, routining and unit clear and start type programs can only be requested on one unit of a pair at any time. In conjunction with the override capability this means that a localization request on unit B will override a previous localization, repair verification or routining request on either unit A or B of that pair.

Implementation of this procedure is based on the fact that only one unit of a pair can be MOS at a time and the unit must be MOS for maintenance to be performed on the unit. (Refer to list of Maintenance programming restriction in section IV).

APPENDIX III

Listed below are the valid values to be used when specifying the source of a request to DIACON. ______________________________________ Code Source ______________________________________ SCTTY Teletypewriter SCTRS Timed routine scheduler (TRS) SCSCS System Clear and Start SCISO Isolation program BLANK No source specified ______________________________________

APPENDIX IV

Listed below is a partial list of the audits and the corresponding codes to be used in DIACON macros. ______________________________________ CODE AUDIT ______________________________________ AU WAA Work area audit (work areas and queues roots) AU QRA Queue Root audit AU WAC Work area checker (work areas only) AU LMP Lampliter audit AU MAN MANIAC audit AU PBC Pushbutton checker AU PMC Power Monitor checker AU DVD Drum Vs. Drum check AU CNF Configuration Control audit AU TRP Trap Out Program AU TRT Third Party Trap Audit ______________________________________

APPENDIX V

DIAFLG MECHANISM

In order to fascilitate DIACON's ability of processing requests without having work areas at the time of request, the EXEC has provided the DIAFLG mechanism. This mechanism is a flag (DIAFLG) associated with each of the EXEC's 8 priority job queues. As the EXEC processes the job queues he will interrogate the DIAFLG for each queue as the first request on that priority and, if set, give control to DIACON. This gives DIACON an entry on each of the queues without the need of a work area.

When DIACON is entered, he will attempt to get a work area of the size required to do his job. If he is unable to obtain a work area as needed he merely sets his DIAFLG request again, returns to the EXEC to allow further processing of other requests and tries again the next time he is entered.

This mechanism provides two advantages. First, it allows scheduling of DIACON without the need for a work area. Secondly, it enaables the scheduling of maintenance jobs during a trap level. This second advantage would otherwise require a dedicated work area.

APPENDIX VI

Repeat Tests and Their Source Codes

The following source codes for repeat tests are valid:

Code Description ______________________________________ RPRPT the requested routining program is to repeat until a RPTSTP macro is executed. RPRPQ the requested routining program is to repeat until the test being run fails. RPRVR the requested repair verification pro- gram is to run once for every request made from the repair verify-repeat Push Button. When the test is success- ful, the unit is to be put in service and the repeat test stopped. ______________________________________

APPENDIX VII

Raw Data Dump Source Code

If a Raw Data Dump is being requested from the module being requested the following Source code will be used:

Source Code Description ______________________________________ RDUMP a raw data dump (if implemented) will be provided. blank No raw data dump will be given. ______________________________________

EXECUTIVE PROGRAM MODULES

F02 - figs. 48a - 48b

1. name: link to Queue Program

2. PURPOSE: The purpose of module FOx is to link a work area to a specified queue.

3. FUNCTIONS:

a. Maintains current, total and empty queue statistics.

b. Initiates a validity check for the type field.

c. Links to the front or back of a queue.

d. Maintains maximum length queue has attained.

4. INPUTS

4.1 software 4.1.1 core table

Fwa - executive Interface Work Area

Fra - queue Root

Esl - executive Storage Locations

4.1.2 DRUM TABLES

None

4.1.3 REGISTERS

X1 - identity of Work Area to be Queued

X2 - queue root identifier

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - executive Interface Work Area

Fra - queue Root

Esl - executive Storage Locations

5.1.2 DRUM TABLES

None

5.1.3 REGISTERS

None

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: reasons for entry

points

f02x01 link to back of Queue

F02x03 link to front of Queue

6.2 EXIT POINTS

Exit: reasons for exit

points: control is always returned to the calling program.

7. SUBROUTINES USED

Entry: functional names

points

none

8.0 narrative

8.1 discussion

the queue structure used by the executive consists of two parts: the entries in the queue and the queue roots. Each queue has a unique root, fixed table of six words, associated with it. The root points to the first queue entry, the first points to the second, etc. The last entry contains a zero instead of a pointer to indicate the end of the queue. The queue root also contains the last entry to facilitate adding new entries.

The F02 module provides two way linkage of a work area. A work area may be linked to the front or the back of the queue depending upon the entry line called. Both entry lines provide a route of initializing first and last entry pointers in the queue root if the queue is empty. Interrupts are disabled as a function of the LNKTAB macro. possibilities module

8.2 TECHNIQUE

When linking a work area to the back of a queue; entry is required from line F02X01. Upon entry an initial check is made to determine if the queue has other work areas in it. If it doesn't the empty queue counter is incremented and a check is made to see if the work area type is valid. If the work area type is valid the linkage word of the new entry is stored in the zeroed link field and the first and last entry pointers are stored in the queue root. The total and current entry counts are incremented and the maximum count is equated to the current count if the present maximum count is less than the current count. The interrupts are enabled and return is made to the caller.

When the initial check determines the queue is not empty and the type field is valid the new entry address is merged into the old last entry and the old last entry's linking address now points to the now last entry. Return is made to the caller after the entry counts are incremented and interrupts enabled as described earlier.

When linkage is required to the front of a queue, entry line F02X03 is called. If the queue is empty, processing remains the same as for an empty queue in F02x01. If the queue is not empty the address of the first entry is merged into the new entry linkage in the work area and the address of the new entry is placed in the queue root. The total and current empty counts are incremented and the maximum count is equated to the current count if the present maximum count is less than the current count. The interrupts are enabled and return is made to the caller. If upon any entry line (X01 or X03) the type field is found to be invalid, a call to work area audit is initiated.

F03 - fig. 49

1. name: - unlink from queue program.

2. purpose: - the purpose of module F03 is to unlink work areas from the front of the work area queue.

3. FUNCTIONS:

a. Maintains a current count of entries in the queue.

b. Passes the work area address of the entry being unlinked to the calling program.

c. Adjust pointers to entries remaining in the queue.

4. INPUTS

4.1 software

4.1.1 core table

Fwa - executive Interface Work Area

Fra - queue Root

Esl - executive Storage Locations

4.1.2 Drum Tables

None

4.1.3 Registers

X2 - queue Root Identifier

4.2 Hardware

None

5. Outputs

5.1 Software

5.1.1 Core tables

Fra - queue Root

Esl - executive Storage Locations

5.1.2 Drum Tables

None

5.1.3 Registers

Ra - < 0 - queue empty

> 0 - Normal return

X1 - work area identity if RA> 0

5.2 hardware

None

6. Control

6.1 Entry Points

Entry: Reasons for Entry

Points

F03x01 unlink from top of Queue

6.2 Exit Points

Exit: Reasons for Exit

Points: Control is always return to the calling program.

7. Subroutines Used

Entry: Functional names

Points

None.

8.0 NARRATIVE

8.1 discussion

the F03 module provides the capability of unlinking a work area from a queue over entry line F03X01 Unlike the linking module F02 unlinking can only take place from the front of the queue. The interrupts are disabled as a function of the LNKTAB macro.

Technique

upon entry via F03X01 the work area queue is checked to determine if any entries are present. If the queue is empty the error return indicator is set, the interrupts are enabled and return is made to the caller.

If the queue is not empty, the count is decremented by one and the queue is checked for additional entries. If only one entry is in the queue the queue root address is used as the last entry address.

The address of the entry being removed is stored for passage to the caller. The new first entries address is put in the first entry section of the queue root and a normal return is made to the caller after the interrupts are enabled.

*NOTES TO FIG. 49

1. interrupts disabled in entry line table by use of dismac.

2. enimac

f03xc1 used to remove first entry from a queue.

inputs: (xr2) = queue root identity

outputs: (xr1) - work area address if queue was not empty

(ra) .gtoreq. 0 if queue was not empty

(ra) <0 if queue was empty

f04 - figs. 50 - 50a

1. name:

f04 work area assignment program

2. purpose:

the purpose of module F04 is to assign a spare work area from the queue to fulfill a request from the caller because of an overload.

3. FUNCTIONS:

a. calls unlink to obtain a work area from the appropriate spare work area queue.

b. calls lamplighter for overload lamps

c. checks for overload condition

d. returns indication to user of successful or overload condition if requested

e. causes scheduling of user specified program an overload, if requested by user

4. Inputs

4.1 Software

4.1.1 Core Tables

Fra - queue Root

Esl - executive Storage Locations

Fwa - executive Interface Work Area

Eps - executive Parameter Storage

4.1.2 Drum Tables

None

4.1.3 registers

X1 - work Area to be used for Executive overload handling

X2 - work Area type indicator

Ra - overload return program name and Entry line. Bit 24 set indicates that Executive is to handle overload

4.2 Hardware

None

5. outputs

5.1 Software

5.1.1 Core tables

Fra - queue Root

Esl - executive Storage Location

Fwa - executive Interface Work Area

5.1.2 Drum Tables

None

5.1.3 registers

Ra = 0 if normal return

<0 if overload and caller is to handle

Work Area overload

X1 - work area identity if RA = 0

5.2 hardware

None

6. control

6.1 Entry Points

Entry: Reasons for Entry

Points

F04x01: obtain a spare Work Area

6.2 Exit points

Exit Points; Reasons for exits

E01x06: no Work Areas of size requested and executive is to handle overload; Otherwise, control is returned to the caller

7. Subroutines

Entry: Functional Name

Points

F03x01: unlink - obtain entry from Queue

L25x01: lmpltr - set work area overload lamp on MCC

8.0 narrative:

8.1 discussion

module E04 assigns work areas on the basis of the specified Work Area type indicator. Register A contains the program name and entry line. If bits 24 is set the exec is to handle the overload rather than returning to the caller at that time.

8.2 TECHNIQUE

Upon entry to F04 there is a call via macro PGLINK to unlink a work area from a spare work area queue. If a work area is available and is not the last one in the spare queue, the normal return indicator is set and return is made to the caller.

When a work area of requested size is not available and the exec is not to handle the overload the error return indicator is set. Return is then made to the caller after enabling the interrupts.

Upon non-availability of a requested work area the exec may be called to handle the overload. This is accomplished by calling the RESKED entry line (E01X06) for the overload rescheduling of the specified program.

When a work area is retrieved and it is the last one in the queue lamplighter is called to light the overload lamp. The interrupts are enabled if applicable and normal return is made to the caller.

F05 - fig. 51

1. name

work Area Return (WADROP) Module.

2. PURPOSE

The Work Areas Return Program (Module F05) returns Work Areas (WA's) to spare queues.

3. FUNCTIONS

Module F05 performs the following functions:

a. Calls the Link to Queue program (module F02).

b. Calls the lamplighter (if applicable) to extinguish the WA overload lamp.

4. INPUTS

4.1 software

4.1.1 core Tables

Hls - lamp Status Table.

4.1.2 Drum Tables

None.

4.1.3 Registers

X1 - contains the work area address.

4.2 HARDWARE

None.

5. OUTPUTS

5.1 software

5.1.1 core Tables

None.

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F05x01: f05x01 is called to return temporary WA's to the proper spare WA queue.

6.2 EXIT POINTS

Exit: Reasons For Exit

Points

None: Control is returned to the calling program.

7. SUBROUTINES USED

Entry Functional Names

Points

F02x01: link to Priority Queue: Link to the Back of the Queue.

L25x01: lamplighter (LMPLTR).

8. narrative

8.1 discussion

module F05 is entered by calling entry line F05X01. Upon entry, information regarding the return of a WA to a spare queue and the size of the queue is obtained by accessing the linkage word and symbolic queue identifier.

A mask, indicating a Lit lamp, is compared with the lamp status table. If the lamp is already extinguished, a branch to module F02 is initiated. After control is returned to module F05, interrupts are enabled and control is returned to the caller. If the overload lamp is lit, a call to the Lamplighter subroutine is initiated to extinguish the overlamp. Then a branch to module F02 is initiated. After control is returned to module F05, interrupts are enabled and control is returned to caller.

8.2 TECHNIQUE

Not applicable.

* NOTES to FIG. 51

1. interrupts disabled in entry line table by dsimac.

2. interrupts enabled when required by use of enimac.

3. type is used as queue root identity of appropriate spare queue.

4. called to extinghish work area overload.

f05x01 used to return work areas to the spare queues.

input:

(xr1) = work area address

output: none

l13g

1. name

work Area (WA) and Call History Table (CHT) Initializer module.

2. PURPOSE

The WA and CHY Initializer program (module L13G) clears and initializes regular WA's, special WA's, and CHT's.

3. FUNCTIONS

Module L13G performs the following functions:

a. Sets the Register Junctor (RJ) off-line bit, in the corresponding CHT, for each unequipped RJ.

b. Initializes all regular and special WA's and links them to spare queues or hitching posts.

4. INPUTS

4.1 software

4.1.1 core Tables

Cep - engineered Office Parameters

Chq - call History Table

Esw -special Work Area Initialization Table.

Fjb - base level Junk

Hep -engineered Parameters

4.1.2 Drum Tables

None.

4.1.3 Registers

None.

4.2 HARDWARE

None.

5. OUTPUTS

5.1 software

5.1.1 core Tables

Chq - call History Tables

Fhp - hitching Post Table

Fjb - base Level Junk

Fza - special Work Area Table

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARD

None.

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

L13g01: l13g01 is branched to clear and initialize regular and special WA's, and CHT's.

6.2 EXIT POINTS

Exit: Reason For Exit

Points

L13d01: (end) L13D01 is used when all the WA's and CHT's are accounted for.

7. SUBROUTINES USED

Entry; Functional Names

Points

F05x01: wadrop - work Area Return.

8. NARRATIVE

8.1 discussion

since WA's and CHT's are not imaged on drum memory, module L13G must initialize these areas before control is transferred to the EAX system. Before the system begins operation, all WA's must be properly linked to a queue or hitching post, and each CHT must reflect its RJ's installed status.

8.2 TECHNIQUE

Module L13G first initializes all allocated CHT's. The quantity of CHT's in a section is an engineerable parameter. For each equipped CHT, a check is performed (in table HEP) to determine if the associated RJ is also equipped. When the bit in table HEP is not set (the RJ is not installed), the off-line bit in the associated CHT is set. A check is performed determining if Office Section two is installed. When Office Section two is installed, module L13G performs the same actions as in Office Section One.

Regular WA's are then initialized. Table HEP is utilized in determining the size, type number, and quanity of each Wa type. The relative depth in the Wa common area is computed for each WA. After the computation, the WA is dropped via the WA Return (WADROP) program (module F05). This operation is performed for each WA type.

Table ESW is utilized in the construction of the special WA's. Each special WA described in table ESW is hitched to its respective hitching post, and the type field of each WA is initialized.

F14 - fig. 52

1. name

call Histroy Table Address Calculator Subroutine.

2. PURPOSE

Module F14 provides centralized calculation of Call History table addresses from Register Junctor identities.

3. FUNCTIONS

Module F14 performs the following functions:

a. Determines whether the Register Junctor identity input is within the range of equipped units.

b. Calculates the relative address of the Call History Table slot in the Call History Table.

c. Returns control to the calling program.

4. INPUTS

4.1 software

4.1.1 core Tables

Cep - call Processing Engineering Parameters Table.

4.1.2 Drum Tables

None.

4.1.3 Registers

Ra - register Junctor identity consisting of Register Junctor Number (0-191) in bits 4-11 and Register Sender Section in bit 12 (0 = Section 1; 1 = Section 2).

4.2 HARDWARE

None.

5. OUTPUTS

5.1 software

5.1.1 core Tables

None.

5.1.2 Drum Tables

None.

5.1.3 Registers

A-register - Validity Indicator

(0 indicates register junctor is not equipped)

(1 indicates calculations successful)

Q-register - Register Junctor identity received as input.

Xr2 - call History Table slot relative address

Xr1 - saved and restored

All other registers are destroyed.

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F14x01: this is the only entry point of module F14 and is called by any program desiring Call History Table address calculation. It may be entered in base level or any interrupt level.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points: The exit point is to return control to the calling program.

7. SUBROUTINES USED

None.

8. NARRATIVE

8.1 discussion

the No. 1 EAX has many programs which need to access a Call History Table slot corresponding to a particular register junctor. The program may not have the index value for accessing the particular slot. To centralize the calculations of that index, module F14, Call History Table Address Calculator subroutine is provided.

8.2 TECHNIQUE

F14 makes a range check on the Register Junctor number before making address calculation.

If bit 12 of A-Register is zero, indicating Register Sender section 1, the Register Junctor number is compared with CEPRE1. If Register Junctor is not greater than CEPRE1, control is then returned to calling program. If Register Junctor number is greater than CEPRE1, A-Register is cleared and control is returned to calling program.

If bit 12 of A-Register is set, indicating Register Sender Section 2, the Register Junctor number is compared with CEPRE2. If the Register Junctor number is not greater than CEPRE2, XR2 is loaded (Register number + CEPRE1) *12 and A-Register is set to 1; control is then returned to calling program. If Register Junctor number is greater than CEPRE2, A-Register is cleared and control is returned to calling program.

Notes to fig. 52

inputs:

ra - rj identity w/section bit

outputs::

ra - validity indicator

xr2 - call HISTORY TABLE ADDRESS

Rq - incoming rj identity

cepre1 = highest value of an equipped rj in rs unit 1

cepre2 = highest value of an equipped rj in rs unit 2

cepra1 = number of call history table entries for rs unit 1

f29 - figs. 53 - 53c

1. name

drum Scheduler

2. PURPOSE

To accept requests for drum I/0, and to initiate or queue these requests depending on the availability of an idle DCU.

3. functions

a. Accepts request from Manipulator or the user.

b. Provides control interlock for the non-resident area.

c. Performs boundary tests to insure that the user has provided adequate buffer area to receive requested data.

d. Provides proper routing of accesses requiring gradual transition when the Update program is active.

e. Provides proper routings of transient write accesses.

f. Determines if the job can be executed on the required DCU(s).

g. Initiates the job if the required DCU(s) is (are) idle.

h. Queues the job on the appropriate drum queue if the required DCU(s) is (are) busy.

i. Returns control to the caller or releases to the Executive.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa - user's Work Area

Fje - executive Junk Storage

Ncw - update Status Word

Fdp - drum Parameter Table

Cep - engineering Parameter Table

Fsw - work Area Size Table

Chq - user's Call History Table

4.1.2 Drum Tables

None.

4.1.3 Registers

Xr1 - work Area Address

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - user's Work Area

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Engry

Points

F29x01: this is the only entry point, called by the Manipulator or certain users for access to the drum.

6.2 EXIT POINTS

This module may take one of two exit paths, as specified by the caller:

1. Return to the caller

2. Exit to the Executive's TIME Loop (E01X04)

7. subroutines used

entry: Functional Names

Points

F30a15: called to determine if a job can be executed on a given idle DCU

F30a11 called to initiate a job on a specified DCU

F30a03 called to schedule a user's error program, if required.

F02x01 called to link a job to a specified drum queue

8. NARRATIVE

8.1 discussion

the scheduler acts as an interface between a requestor of drum I/0 and the drum handler. It performs routine functions suchu as NRA control interlock, final initialization of the work area and boundary size checks. The terminal function is to initiate the job (if a required DCU available) or queue it for execution later.

8.2 TECHNIQUE

The bulk of the scheduler's function involves boundary checks on user-provided buffer area, to prevent inadvertent overflow of this area. Several dedicated code paths exist for these checks designed to minimize the real-time required to make them. As employed elesewhere in handling the drum the user's access mode (see Technique section of Drum Handler, F30) is utilized to route the access through the required buffer size tests. Failure to pass these tests will result in termination of the job, and the user's error program being scheduled.

If these tests are passed (or are not required), a check is made to see if one or both DCU's of the specified DUC pair is idle. If so, a subroutine of the Drum Handler is called to verify that the status of the required DCU will permit execution at this time. If so, the Drum Handler is again called, to initiate the job on the DCU. If execution cannot proceed at this time (or the required DUC is busy), then the job is queued up on the appropriate queue for execution later.

F30 - figs. 54 - 54f

1. name

drum Handler

2. PURPOSE

To provide centralized control of I/O with the drum memory system and with DMS isolation programs.

3. FUNCTIONS

a. Provides external interfaces with:

1. Interrupt Cause and Analysis Program

2. DMS Isolation Programs

3. I/O Device Time-Out Audit isolating

b. Initializes DCU Initialization Table with proper control information as required for each specific access to drum

c. Scans queues of an idle DCU in search of jobs awaiting execution.

d. Schedules a user's error program when required.

e. Schedules the user's next program, when appropriate.

f. Handles the occurrence of ready interrupts from DCU's.

g. Processes data from DCU spills into a format requested by the user.

h. Initiates a DCU spill, if requested by the user.

i. Transfers data from DCU initialization table into a user's specified buffer area.

j. Performs validity check on data and control bit removal from data, if requested.

k. Deletes primary data cell and primary address of coincidence, if requested.

l. Clears DCU hardware and associated software indicator in preparation for next job.

m. Initiates a job on the DCU by issuing the appropriate CPD.

n. Supervises special hardware interface required for access into off-line care.

o. Maintains interface with I/O Device Time-Out Audit program.

p. Honors Maniac requests of Reset and Ignore, or Direct/Scheduled Reroute on either error or ready interrupts.

4. INPUTS 4.1 SOFTWARE

4.1.1 core Tables

Fwa - user's Work Area

Fdp - drum Parameter Table

Fsv - status Verify Table

Hst - system Status Table

Fjp - interrupt Level Junk Storage Table

Fdi - dcu initialization Table

Fdm - drum Data Mask Table

Fhp - hitching Post Table

Hrd - dms isolation Status Table

4.1.2 Drum Tables

None 4.1.3 Registers

Xr1 - work Area Address or DCU Identity

Xr2 - subroutine Caller Identity

Xr3 - entry Line Identity

4.2 HARDWARE

Dcu(s) either ready; in error; or in undetermined state, SG No. 65 CCP identity

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - user's Work Area

Fjp - interrupt Level Junk Storage FDI - DCU Initialization Table

Fdp - drum Parameter Table

Fhp - hitching Post Table

Eps - executive Parameter Storage Table

Hel - i/o device Time-Out Audit Timing Table

Cht - user's Call History Table

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

Xr2 - dcu identity

5.2 HARDWARE

Dcu cleared: initialized; or placed in spill mode.

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F30x01: not used

F30x02 called by Interrupt Cause and Analysis Program for processing of a DCU ready interrupt.

F30x03: called by Interrupt Cause and Analysis Program for processing of a DCU error interrupt.

F30x04: called by DMS Isolation to process a DCU ready interrupt obtained from a retry of a job.

F30x05: called by DMS Isolation to schedule a user's error program and clear the DCU in use.

F30x06; called by DMS isolation to re-execute a job on a specified DCU.

F30x07: called by I/O Device Time-Out Audit to notify the handler that a DCU has failed to generate a response in the normal amount of time.

F30a02: called by Drum Handler Subroutines II (F41) to scan the queues of an idle DCU.

F30a03: called by Drum Scheduler (F29) to schedule a user's error program.

F30a07: called by Drum Handler subrouting I (F40) to schedule a user's next program.

F30a10: called by Drum Handler Subroutines II (F41) to clear down a DCU and its associated software.

F30a11: called by Drum Scheduler (F29) to initiate a job on an idle DCU.

F30a15: called by Drum Scheduler (F29) to clear a job for execution on a specified DCU.

6.2 exit points

return is always to the caller, regardless of which entry point is utilized; thus each entry is in essence a closed subroutine.

7. SUBROUTINES USED

Entry: Functional Names

Points

P01x01: dms isolation - Called to handle DCU errors on which no Maniac requests exist.

L09x01: maniac MANCHK Processor - Called to obtain Maniac information on a DCU error sense line.

F03x01: unlink - called to unlink a task from one of the DCU queues.

F02x01: link - called to link a job to a queue.

F05x01: wadrop - called to return a user's work area to the spare queue.

P02x01: dms isolation Ignore Error and Return Routine - Called to handle user errors on DCU's which have been allocated to a drum - drum transfer.

P01x03: dms isolation Response/No Job Handler - Called to handle an interrupt from a DCU on which no job is in progress.

8. NARRATIVE

8.1 discussion

all logic required for actual access to the DCU hardware is contained in this module. Those functions which are characteristic to all system device handlers (e.g., MANIAC processing, ready and error interrupt handling, etc.) are included, as well as functions characteristic to the drum alone.

Concerning error handling: the decision logic associated with isolation possible faults and performing necessary hardware configuration is the sole responsibility of the DMS Isolation Program. The Drum Handler provides several utilities that are required for this process; e.g., retries, scheduling the user's error program, processing a `pseudo` ready interrupt (i.e., success occurred on a retry), etc. These utilities are incorporated into the handler because:

1. The handler already contains the necessary code for these procedures (i.e., it is required for normal job processing) and/or,

2. Such an arrangement allows the handler to maintain more efficient and accurate control of the drum as a resource.

8.2 TECHNIQUE

The major criterion in designing the handler was minimization of the real-time requirement for call-processing-oriented accesses. To effect this, the call-processing path is coded separate (where feasible) from the more general processing paths. Since this technique tends to increase the core storage requirement (also at a premium) a secondary effort was made to minimize the additional core storage required. As a result, the handler is organized into a group of 14 functional subroutines, in order to consolidate redundant functions and promote organization.

The result of employing these techniques was to effect the required through put while actually decreasing the core storage requirement.

Functionally, the subroutines are organized as follows:

F30a01 - set up the DCU initialization table as required for a given access to drum.

F30a02 - scan the queues of an idle DCU pair in search of jobs awaiting execution.

F30a03 - schedule a user's error program with a specified error code.

F30a04 - place a work area on a specified executive work queue

F30a05 - not allocated.

f30a06 - process spill data following a DCU spill.

F30a07 - schedule a user's next program.

F30a08 - initiate a required DCU spill.

F30a09 - transfer data from the ITE into the user's specified buffer area.

F30a10 - clear down a DCU and its associated software indicators.

F30a11 - initiate the specified job on the specified DCU.

F30a12 - initialize the specified DCU.

F39a13 - start the I/O device time-out audit on the specified DCU.

F30a14 - perform interrupt processing common to both ready and error interrupts (i.e., handle response/no job, maintenance abort of a user's job, Maniac reset and ignore, maniac direct or scheduled reroute, etc.).

F30a15 - verify that a specified job can be executed on a specified DCU, in view of that DCU's system status.

Such an organization allows the handler to function in a minimum amount of core, while not significantly compromising the real-time objective. In addition to being utilized internally, these subroutines are also utilized by other drum modules (i.e., F29, F40 and F41) in order to satisfy interface requirements and promote core reduction.

As noted previously, every practical attempt is made to segregate call-processing accesses from other access types. Currently the only method available for doing this is to use the user's access mode. Each access to drum is assigned one of several access modes, which identifies access for certain processing characteristics. For call processing, the assigned access mode is zero; unfortunately, many other non-call-processing accesses also utilize this access mode, whose processing requirements may vary radically from those normally attributed to call-processing. Therefore, the user's access mode represents at best a `rule-of-thumb` for routing drum requests into dedicated code paths. Nevertheless, use of this and other techniques has enabled attainment of the throughput and core reduction goals.

F31 - figs. 55 - 55b

1. name

communication Control Register (CCR) Scheduler

2. PURPOSE

In a general sense, the CCR hardware and software is for the purpose of enabling communication between the Data Processing Unit (DPU) and the Marker subsystems (Originating Marker - OM and Terminating Marker - TM). In this context, F31 is the initial CCR processor (scheduler) of DPU software programs (clients) that desire to: (a) command the TM hardware for call processing purposes, (b) command and/or interrogate the CCR, OM, or TM, hardware for maintenance purposes.

The CCR, OM, or TM reply to a (F31 client) maintenance interrogation (or confirmation/response to a maintenance command is always in the form of data words put in the CCR hardware, this answer data will then be loaded into the F31 client work area. The TM's final "response" to a (F31 client) call processing command, is also in the form of data words put in the CCR hardware and then loaded into the F31 client work area (actually, this response is mostly the TM's indication that it has, or has not, completed the conversation path).

On the other hand, one type of communication between the marker and the DPU does not involve a F31 client; this is when the OM sends call processing data to the DPU. This communication is initiated solely by the OM and reaches the DPU without going through a F31 client.

F31, more specifically, schedules clients with I/O requests, for entry into the CCR Handler program F32, so that these requests may be carried out. As stated above, these clients can be divided into two general classes: Requests for normal call processing involving the TM, or requests for maintenance upon CCR hardware, the OM, or the TM.

3. functions

module F31 performs the following functions:

a. Checks that client requests are proper and fulfillable.

b. F31X01 classifies clients into one of the three following groups for entry into the CCR Handler program (the clients are actually put into one of five queues): (1) Maintenance on the CCR frame hardware, (2) Maintenance on the OM, or TM and (3) normal call processing involving the TM. Groups 1 and 2, above, are of a higher priority than group 3.

c. F31X02 allows a quick status snapshot of the CCR frame hardware, for CCR maintenance. In this case the client is branched directly (not scheduled) to the CCR Handler, to obtain the data.

d. During the CCR performance of the client I/O task, the client may, or may not, have control returned (as he requests). When control is not returned to the client, during the performance of the I/O task, then F31 branches to EO1X04 so that other DPU work may continue while the I/O task is being performed (the I/O task is like a closed subroutine). After completion of the I/O task, the events described below (item (e) will occur.

e. When F32 (and/or other CCR software) completes the I/O task for a "F31 client", the NPG (next program client requests) is then given control: this NPG is a F31 client parameter (selection), and may be merely a return to the client himself. In the event of an error occurring before completion of the I/O task, the ERP (error program client requests) is given control via EO1X01. After the I/O task is completed, then a CCR software program (usually F32 or F31) calls F38 which in turn calls the Executive scheduler E01X01, which schedules the NPG.

4. inputs

4.1 software

4.1.1 core Tables

Eps - (also an output table) Executive Parameter Storage

Esl - (also an output table) Executive Storage Location

Fat - ccr address Translation

Fsw - work Area Size

Fwa - (also an output table) Executive Interface Work Area

Fwd - tm sent Information

Hst - system Status

4.1.2 Drum Tables

None

4.1.3 Registers

X1 - work Area Identity

X3 - entry Line Number

4.2 HARDWARE

None

5. OUTPUTS

5.1 software 5.1.1 core Tables

Eps - (also an input table) Executive Parameter Storage

Esl - (also an input table) Executive Storage Location

Fwa - (also an input table) Executive Interface Work Area

Has - mcr audit

Swb - ccr dump Area B

5.1.2 drum Tables

None

5.1.3 Registers

X1 - work area identity if client of F31X02 requests return

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F31x01: called by clients wishing to communicate with the markers (OM or TM) by using the CCR; or clients just wishing to communicate with the CCR only

F31x02: called by clients wishing to obtain a quick status dump of the CCR A or CCR B hardware unit.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

E01x04: this exit returns control back to the Executive, so that the usual DPU software programming can continue.

Return to Caller: When exit E01X04 is not used, then return is always made to the client of F31.

7. subroutines used

entry: Functional Names

Points

F36x06: places the status of CCR A or B into table SWB so that the F31X02 client may receive it

F02x01: links the F31 client to one of the five queues for entry into F32X01

F38x01: used by entry line F31X02, when F31 client does not ask for return F38X01 will schedule the program that this client wants to run (NPG).

F38x03: used by entry line F31X02 and F31X01 to schedule the error program (ERP).

F32x01: initiates the I/O task which is requested by the F31 client. This program is not a usual F31 subroutine in the sense that once initiated by F31, it may start an I/O task for the highest priority F31 client and this task (being I/O) can continue after control is returned to F31. Software processing and this CCR I/O can occur at the same time, unlike the case of two software programs where only one can have control at a time.

8. NARRATIVE

8.1 discussion

8.1.1 entry f31x01

the first check by F31 is to determine if the client desires: (1) a Marker operation (which, of course, makes use of the CCR to communicate with the marker), or (2) a CCR-only maintenance operation. Checks are then made to ensure that a large enough work area had been asked for by the client (depending on the type of CCR or marker operation): if not, error field FWAEIO is set to 5. In the case of a marker operation, when the client specified marker is not in the present EAX office, error field FWAEIO is set to 3. In both of the above error situations, F31 will call subroutine F38X03 so that the client specified error program can be scheduled. After F38X02 has scheduled the error program, F31 continues with other client processing. Next, clients are classified into one of five queues: queue 0 = CCR maintenance operation; queue 1 = OM or TM maintenance operation; queue 2 = TM non-maintenance operation (pair one); queue 3 = TM non-maintenance (pair 2); queue 4 = TM non-maintenance operation (pair 3). The order of queue priority is as follows: queue 0 is highest; queue 1 is second, queue 2, 3, and 4 are of third order priority. The placing of clients into the above five queues is based on the values set in field FATQNU (for OM's and TM's); except that a TM maintenance operation is put into queue 1 rather than 2, 3, or 4. The decision to place a TM operation into queue 1 (rather than 2, 3, or 4) is based on its being a maintenance (high priority) rather than a call processing (low priority) operation (when field FWAPQT is 1, then the client is a high priority maintenance job, and the TM Client is put into queue 1). A CCR maintenance operation is placed into queue 0 when it is identified as such (by a 1 in field FWAOPT). When an OM operation (queue 1) is to be performed, a check is made to determine if the client has also asked for a high priority request (field FWAPQT set to 1); this high priority request should be made for all maintenance jobs, and an OM operation should be always be a maintenance job for F31 clients. If the high priority request is not made, then error field FWAEIO is set to 4, indicating a client mistake, and subroutine F38X03 is called. For TM operations, as stated above, field FWAPQT may be set to indicate either high or low priority (maintenance or non-maintenance).

After classifying client into one of the above five queues, this queue data is placed in junk storage FJE004, and a bias number is added, FQ036. At this time subroutine F02X01 is called to place the client job into the previously determined queue, for entry into the CCR Handler F32. Next, F32 is momentarily given control to allow it to initiate an I/O task for the highest priority job in its queues, (probably not the current F31 client), F32 may or may not be able to take advantage of this opportunity; if it does then it can initiate the I/O task and then pass control back to F31. Whether or not F32 can initiate an I/O task, control is shortly passed back to F31 (the main purpose of this program step, which occurs during every use of F31, is to allow every opportunity for the initiation of a F32 I/O task-which once initiated can continue on its own, while other processing continues by F31). The next program step by F31 is to return control to the client, if the client has asked for this option (field FWADGT set to 1); this allows the client freedom to perform some other job while F32 is working its way around to performing the client I/O task. When the client does not request control, then: (1) If the client was a non-resident program and he requested this non-resident area held for him, it is held; otherwise it is not held, and (2) Program E01X04 is given control so that other DPU processing may continue.

8.1.2 ENTRY F31X02

This entry line is used by clients wishing to obtain a quick status dump of CCR A or CCR B hardware.

First a check is made to ensure that the work area is large enough; if not, error field FWAEIO is set to 5, and if the client does not ask to be returned to, then the client specified error program is scheduled by F38X03 (this error program may be the client himself). If the client wants to be returned to (field FWADGT = 1), then he is and the error program is not scheduled. In any case (client return or not), the usual end flow of the program is the same: (1) F32 momentarily called to allow initiation of any pending I/O task - this task would not relate to a F31X02 client, (2) F32 release of non-resident area, if appropriate, and (3) calling of E01X04 to allow other DPU processing to continue. Note that other errors during F31X02 follow the same flow (other errors: CCR out of service, FWAEIO = 1; CCX error, FWAEIO = 1).

Assuming no errors, the client requested hardware unit A or B is selected and its status is looked up in core table HST. The status data is loaded into table SWB (by subroutine F36X06) where the client may access it. After this, when the client does not directly ask for a self-return, subroutine F38X01 schedules the NPG (which may also be just a return to the client; if client return is requested, when the NPG is not scheduled. In any case, the final sequence by F31 is the same as for the above error sequence: (1) Calling of F31 to allow any current (but unrelated) I/O task initiation (2) F31 release of non-resident area, if appropriate, and (3) scheduling of E01X04.

8.1.3 input flow

this section lists the type of request that a F31 client may make of the CCR software programs (principally, the CCR scheduler F31 and the CCR Handler F32) and thereby indicates the general functional flow involved in fulfilling these requests. The input which an F31 client must supply can be broken down into three areas: (1) Client input options; covered in a general way, in the description of input parameters (2) Client supplied input data, and (3) General input restrictions for F31 clients, not covered in other input parameter documents.

These three areas are listed below:

(a) Client Input Options of Special Importance.

1. P1; The identity of the next program to schedule at the completion of the I/O request (for a F31 client, the I/O task would be completed by F32; for F31X02 client, the task would be completed by F31). This parameter is not needed when the client is finished with his overall job after the completion of the I/O task. This NPG information is stored in field FWANPG.

2. P7: The logical request number which specifies the mode of data transfer to employ. These detailed options, for the F31 client, are listed in document D-3.44.21* appendix A: which covers the pertinent fields of core table FWA, dealing with the control of various I/O devices, (a F31 client would be employing the OM, TM and/or CCR). Some of the most important P7 options are described below, along with the name of the FWA field that relates to the option.

a. Enabling of the ability to specify a particular OM or TM; contained in field FWASMR. Specification of the exact OM or TM is accomplished in table FWD (see paragraph 8.1.3, (a), (2), below).

b. Specification of a particular CCR (CCR A or CCR B): contained in FWACRI and FWASCR.

c. Specification that the transmission be done in prime mode: contained in FWASMP.

d. Specifying CCR data dumps (status and data data) before and after the message is sent to the marker (OM or TM) and also after the message is received back from the marker: contained in FWADMC.

e. The ability to indicate that the client (who is performing maintenance) is using an OM to simulate calls entering the EAX office, and that if a malfunction occurs, maintenance recovery routines should be called: contained in FWAVTS.

f. Specification that should the client requested OM be found to be not on-line, then a standby CPD (control pulse directive) will or will not be issued: contained in FWASOM.

g. Specification of special modes of data transfer and scheduling in marker operations (includes direct commands to the markers): contained in FWACDR.

h. Specification of special modes of data transfer and scheduling in CCR operation, a 0 or 1 in this field specifies a marker or a CCR operation: contained in FWAOPT.

Note: when unload-CCR-status-word is specified, (an option of a F31X02 client) and return to client (FWADGT = 1) is also requested, the scheduling of the NPG is not performed by F31.

i. Client can specify timer size he wants in field FWATMS. If the client asks for timer size 5, and also requests FWACDR = 2 or 4, then he also specified a Schedule on Idle. This means that when the marker is idle, the program will know that the client job is completed; this is faster than the usual timeout method of knowing that the client job is completed.

3. P8: The program type, which specifies the type of action to be taken concerning return of control, scheduling of other programs, release of work area, and control of the non-resident area (see Document D-3.44.21*, appendix B, which describes the pertinent field FWAPGT).

4. P9: The priority queue type, which specifies the type of queue to link the client request to, for entry to F32.

b. Client Supplied Input Data

1. When a F31 client is using a TM for either call processing or maintenance purposes, he may also supply Register Junctor Identity (RJI) date (put into field FWARJI) and Register Sender Instruction data (put into field FWARIN); note that when FWARIN is set to 0, F31 will not act on this field: that is, the field will not be sent to the Register Sender for translation (as in OM maintenance). In the case of TM maintenance the client may employ field FWAVTS (when he is simulating a normal call entering the EAX office) so that in the event of an error, Maintenance recovery routines wlil be employed - rather than call processing recovery routines.

2. When the client wishes to send maintenance data to the OM, or TM, or to send call processing data to the TM, he must employ core table FWD words 00 through 03: among other options, this table allows selection of a particular OM or TM (the client must have employed field FWASMR so that table FWD can be used to specify an exact OM or TM, see paragraph 8.1.3, (a); (2), a. This four-word area of table FWD is set up to match the input format of the markers: the first two data words for OM requests; and all four data words for TM requests.

c. General Restrictions to clients of F31.

1. F31 must be called from base level, it cannot be entered in the interrupt mode.

2. Depending on the nature of the client requests, a large-enough work area must be asked for by the client to hold all pertinent data. The minimum size requirements for all clients are listed below:

a. All clients using entry line F31X02 must have a minimum of a 28-word area.

b. F31X01 client: If CCR status dumps are requested (FWADMC = 1), or if a CCR operation is requested (FWAOPT = 1) with a CCR-to-CCR transfer (FWACDR = 6 or 7), then a minimum of a 40-word work area is required.

c. F31X01 client: When a CCR status dump is not requested (FWADMC = 0), and a CCR operation is requested (FWAOPT = 1), other than a CCR-to-CCR transfer (FWACDR = 1, 2, 3, 4, or 5: for a non CCR-to-CCR transfer), then a minimum of a 28-word work area is required.

d. F31X01 client: When a CCR status dump is not requested (FWADMC = 0), and any marker operation is requested (FWAOPT = 0), then a minimum of a 20-word work area is required.

3. All F31 clients, other than TM call processing requests, should be marked as high priority (FWAPQT = 1). In the event a OM request is not marked high priority, F31 will give an error return because an F31 client should only be making a maintenance request regarding an OM.

4. If the client is non-resident (non-core-resident) and his error program (P3) is scheduled, he will not be allowed to remain in control of the non-resident area, even if he has asked to be. If the error program is non-resident, it must be read from the drum.

8.1.4 OUTPUT FLOW

The following description lists the type of output that an F31 client receives back from the CCR software programs (principally the F32 and F31 programs) and thereby indicated the general functional flow involved in fulfilling the F31 client request. Types of outputs that an F31 client receives are:

1. Error outputs, principally from F31 and F32,

2. data outputs from F32, and

3. "Indirect" outputs from F31.

These three areas are listed below:

a. Error outputs to F31 clients are contained in field FWAEIO (program F31 and F32 send the majority of these error outputs). Error outputs coming from F31 only, back to client, are: field FWAEIO = 1, 3, 4, or 5.

Another type of error output, actually a special maintenance data output to F31 clients, is contained in an overlay of the FWAEIO field: Maintenance data field FWAMDA (consists of bits MD1 through MD5) and bit FID.

When bit FID is 1, field FWAMDA is being presented, rather than field EIO, and the five bits that comprise it must be interpreted as individual bits, rather than one binary number. Specifically, bit FID is 1 when a maintenance request is being processed (an F31 client from queue 0 or 1) and field MDA is interpreted as follows (depending on the exact type of maintenance being performed by the F31 client and the options he selects):

1. Field FWAMDA (bits MD1 through MD5) Definition for given F31 clients in Queue 1. __________________________________________________________________________ a. OM maintenance client using FWACDR=1 No-error is usually option (SR data) indicated by this output __________________________________________________________________________ Bit MD1 1=CPD (control pulse directive sent out 1 from CCR. Bit MD2 1=Data received from marker 1 Bit MD3 1=Marker malfunction 0 Bit MD4 A 1 is inappropriate * 0 Bit MD5 A 1 is inappropriate 0 *"Inappropriate" means that a 1 occurring under these conditions indicates some unknown problem (for bit MD4 it is probably a sign of marker error). b. OM maintenance client using No-error is usually FWACDR=2 option (schedule on indicated by this output: fault or timeout): Bit MD1 1=Data sent out from CCR 1 Bit MD2 1=Data received from marker 1 Bit MD3 1=Marker malfunction 0 Bit MD4 When marker is on-line 1, if marker is on-line 1=standby interrupt rec'd from marker 0, if marker is off-line When marker is off-line a 1 is inappropriate Bit MD5 If client takes option, ** 1, if either option 1=status drum provided by is taken. CCR. If client takes option** 1=marker idle (indicating job final) 0, if no option taken. If option not taken a 1 is inappropriate **FWADMC = 1 for status dumps, timer size 5 and FWACDR = 2 or 4 for marker idle c. OM maintenance client using FWACDR=3 No-error is usually option (schedule on ready): indicated by this output: Bit MD1 1=Data sent out from CCR 1 Bit MD2 1=Data received from marker 1 Bit MD3 1=marker malfunction 0 Bit MD4 When marker is on-line 1, if marker is on-line 1=standby interrupt rec'd from marker 0, if marker is off-line. When a marker is off-line a 1 is inappropriate. Bit MD5 If client takes option, 1, if option is taken. 1=status dump provided by CCR 0, if no option is taken. If option not taken, 1 is appropriate. d. OM maintenance client using FWACDR=4 No-error is usually option (simulate origination): indicated by this output: Bit MD1 1=Data sent out from CCR. 1 Bit MD2 1=Data received from marker 1 Bit MD3 1=marker malfunction 0 Bit MD4 When marker is on-line 1, if marker is on-line 1=standby interrupt rec'd from marker. 0, if marker is off-line. When marker is off-line a 1 is inappropriate. Bit MD5 If client takes option, 1, if option is taken. 1=status dump provided by CCR 0, if no option is taken. If client takes option, 1=marker idle (indicating job finished). If no option taken, a 1 is inappropriate. e. OM maintenance client using FWACDR=5 No-error is usually option (reset CPD). indicated by the following output: Bit MD1 1=CPD sent out from CCR 1 Bit MD2 A 1 is inappropriate 0 Bit MD3 1=Marker malfunction. 0 Bit MD4 A 1 is inappropriate 0 Bit MD5 A 1 is inappropriate 0 f. TM maintenance client using FWACDR=1 No-error is usually option (SR data): indicated by the following output: Bit MD1 1=CPD sent out from CCR. 1 Bit MD2 1=Data received from marker 1 Bit MD3 1=Marker malfunction. 0 Bit MD4 A 1 is inappropriate. 0 Bit MD5 A 1 is inappropriate. 0 g. TM maintenance client using FWACDR=2 No-error is usually option (schedule on fault or indicated by the timeout): following output: Bit MD1 1=Data sent out from CCR. 1 Bit MD2 1=Data received from marker. 1 Bit MD3 1=Marker malfunction. 0 Bit MD4 A 1 is inappropriate 0 Bit MD5 If client takes option, 1, if option is taken. 1=status dump provided by CCR. 0, if option is not taken If option not taken, a 1 is inappropriate. h. TM maintenance client using FWACDR=3 No-error is usually option (schedule on ready): indicated by the following output: Bit MD1 1=Data sent out from CCR. 1 Bit MD2 1=Data received from marker. 1 Bit MD3 1=Marker malfunction. 0 Bit MD4 A 1 is inappropriate 0 Bit MD5 If client takes option. 1, if option is taken. 1=status dump provided by CCR. If option not taken, a 1 is inappropriate i. TM maintenance client using FWACRD=5 No-error is usually option (reset CPD): indicated by the following output: Bit MD1 1=CPD sent out from CCR. 1 Bit MD2 A 1 is inappropriate. 0 Bit MD3 1=Marker malfunction. 0 Bit MD4 A 1 is inappropriate. 0 Bit MD5 If client takes option, 1, if option is taken. 1=status dump provided by CCR. 0, if option is not taken. If option is not taken, a 1 is inappropriate. (2) Field FWAMDA (bits MD1 through MD5) Definition for an F31 client in Queue 0. CCR maintenance client employing CCR No-error is indicated to CCR transfer (FWAOPT=1, and by the following FWACDR=6 or 7): output: Bit MD1:1=Data transmission 1 initiated from CCR (to other CCR). Bit MD2:1=Receiving CCR received 1 data successfully. Bit MD3:1=Receiving CCR did not get 0 data successfully, but status dumps still provided. Bit MD4:1= Data not successfully 0 sent out from CCR (to other CCR), but status dumps still provided. Bit MD5:1=Data successfully sent 1 out from CCR (to other CCR). __________________________________________________________________________

b. Data output concerning TM call processing, and OM, TM, or CCR maintenance requests are contained in table FWC words 00 through 03. As in the case of input table FWD, output table FWC is set up to match the output format of the markers: two data words for OM outputs and four data words for TM outputs.

The other major output data is contained in words 00 through 03 of tables SWA, SWB, SWC, SWD and SWE. This information is data concerning certain CCR maintenance operations (this includes all CCR status dumps). Output data from the OM maintenance operations concerning a F31 client (performing maintenance) that is simulating a normal OM call processing request, is contained in the following fields: (1) FWARJI, which contains the RJ identity, and (2) FWACHT, which contains the call history table address.

c. Indirect outputs from F31 are changes in certain work area fields that F31 makes during the course of processing a client. These changes are not usually thought of as outputs but the changed field can be made use of by F31 clients, if desired. The following fields may be altered F31 clients, FWANPG, FWAELN, FWAPRI, FWAFEP, FWAFEL, and FWAFPR, and FWAFPR.

8.2 technique

not applicable.

F32a - figs. 56 - 56h

1. name

f32a - ccr i/o initiation handler

2. purpose

the purpose of F32A is to centralize control of hardware, to perform operations necessary to prepare the markers and CCR for operation and initiate data transfers between the CPU and the CCR and between the CCR and the marker.

3. FUNCTION

A. determine if the on line active CCR is available for output.

B. determine if an reconfiguration of the CCR's is required and, if so, call F36X08 - CCR Reconfiguration Subroutine.

C. determine if a request for I/O is queued for an idle device.

D. unqueue the request.

E. initiate the request (which may involve interlocking between a register junctor and a terminating marker.

F. interface with CCX recovery to detect and isolate faults in CPU-CCX-CCR path.

G. return to the calling program.

H. f32x05 is provided to enable retries of transmission a terminating marker by F37-CCR Error and Recovery.

I. f32x07 is a closed subroutine whose function is to attempt to place a specified CCR MOS request CCR Isolation on the CCR, and set a unit maniac just ignore on the device. It then will call F36X08 to achieve reconfiguration and return caller.

4. INPUTS

4.1 software

4.1.1 Core Tables

Els exec. storage Location Table

Fat ccr add trans. Table

Fcc om-rj identity

Fhp hitching Post Table

Ers register Save Table

Fjp interrupt Level Junk

Fqo --

fra queue Root Table

Fwa exec. interface Work Area

Fwb cp reg/SNOR Memory Image

Fwd tm sent Information

Hcd diacon config. Table.

Hcx ccx parity Error Flag

Hel i/o abort Entry Line

Hpp --

hst system Status Table

Spe --

sta --

swb ccr dump Area B

4.1.2 drum Table

None

4.1.3 Registers

None

4.2 HARDWARE

None

Entry Points

F32x01: scan I/O Queues

F32x05

ersked

speccr

loadcr

status

chkcpd

start

f32x07: set CCR MOS, Calls DIACON, set MANIAC to just ignore and reconfig. CCR's

5. OUTPUTS

5.1 software

5.1.1 Core Tables

Fcc - om-rj identity

Fwa exec. interface Work Area

Fwb cp reg/SNOR Memory Image

Hak system Clear

Swb ccr dump Area B

Swd ccr dump Area D

5.1.2 drum Tables

None

5.1.3 Registers

None

5.2 Hardware

None

6. Controls

6.1 Entry Points

F32x01 scan I/O Queue

F32x05

f32x07 set CCR MOS, CALL DIACON, Set Maniac to just ignore, and reconfigure CCR's

6.2 Exit Points

Return is made to client.

7. Subroutines Used

E01x03 dpu scheduler

E02x01 1 cap level 1 (Start Interval Timer)

F01x01 rs scan interlock

F02x01 link to mkr maint. queue

f03x01 unlink work area from i/o queue

f04x01 work Area Assignment

F02x03 link work area back to I/O QUEUE

F34x01 cr handler 2

F36x08 ccr reconfiguration: CR Subroutine 1

F38x04 abort I/O TASK: CR Subroutine 2

F38x03 schedule ERROR Program

L01x04 mainf interrupt access

l20x01 elt, diarot, diabrt

l50x02 set Unit Maniacs

S31x03 channel Multiplex Recovery

S31x01 clock CCX Errors

8. NARRATIVE

8.1.1 discussion

when a call is received by F32X01, the standard status word of the online active CCR is dumped by F36X06. IF the CCR is idle and scanning, a check for a reconfiguration request is made. If the CCR is not idle and scanning the time out audit bit is set and the system returns to the calling program. When reconfiguration is required, it is accomplished by F36X08. Then a check is made for a line transmission request by the Marker Fault Interrupt Processor (52), if so the Maniac is set to reset and ignore. Checks are now made for CCR requests, marker maintenances requests, and termination requests (in that order). If none of these are requested, the system is returned to the calling program.

Diagnostic Requests

In the event that the CCR queue are not empty (CCR request) A CCR-CCR transfer is tried. If successful F36X05 provides a sink for CCR status dump in SWD and sets up the CCR's. F36X06 then provides a source status dump in SWB. Four data words are loaded and sent to the other CCR and the system returns to the calling program. If the CCR transfer was unsuccessful, the status words are dumped into SWB and the data words are dumped into FWC. F38X01 then schedules the next program and the CCR request is checked again.

If there is a marker maintenance request, a marker is selected to be tested. In the case where there are no markers available, the check for a marker maintenance request is made again. When there is a marker available, a check for a CPD request is made. In the case of a CPD request, the CPD is sent. Then the check for the termination request is made and the system returns to the calling program. When there is no CPD request, a check is made to determine if this is an OM or TM request. If a status dump in SWB is requested, it is accomplished by F36X06. If this is a OM request, two words are loaded and sent to the OM and the system returns to the calling program. If this a TM request, a check is made to see if RJ interlock is required. If there is trouble with the interlock, EIO is set to 7 and the marker maintenance request is check again. If there is no trouble, four data words are loaded and sent to the TM and the system returns to the calling program.

If there is a termination request, a check is made to see if the TM is idle. If not idle, the termination request is check again. When idle, a TM is picked and checked for its availability. If not available, the termination request is checked again. If available an RJ interlock is executed if it is required. If there is trouble in the RJ interlock, EIO is set to 7, F38X03 schedules error program, and the termination request is check again. If there is no trouble, four data words are loaded into the CCR and sent to the TM. Now the system returns to the calling program.

F32b - -56i - 56n

1. name

f32b-ccr ready interrupt processor

2. purpose

module F32B is provided to handle all ready interrupts generated by the CCR hardware.

3. FUNCTION

A. provides maniac functions reroute and reset and ignore.

B. handles originations, including performing RJ translation, interlocking RJ with originating marker, and scheduling C01 with the call history table for the RJ selected by the OM.

C. completes termination attempts by putting 4 data words from terminating marker in users work area and scheduling his next program.

D. provides handling for diagnostic requests, including data words, status dumps options and scheduling options.

E. calls F32X01 to attempt to initiate next I/O request.

F. return to ICAP.

4. inputs

4.1 software

4.1.1 Core Tables

Chq program generated INDEX

Fcc om-rj identity

Fhp hitching Post Table

Fwa exec. interface Work Area

Fwc tm received information

Hab 6 bit error count B Table

Has mcr audit Table

Hcd diacon configuration table

Hcs cxx parity error flag

Hmd marker Matrix Comb Table

Hmn maniac Condition Table

Ncw update control word

Swa ccr dump Area A

Swb ccr dump Area B

Swc ccr dump Area C

Swe ccr dump Area E

4.1.2 drum Table

None

4.1.3 Registers

None

4.2 Hardware

None

5. OUTPUTS

5.1 software

5.1.1 Core Tables

Cha scheduling Information

Chc om data frame record

Chq program generated index

Fjp interrupt Level Junk

Fom ccr handler Control

Fwa exec. Interface Work Area

Fwc tm received information

Hel i/o abort entry lines

5.1.2 Drum Tables

None

5.1.3 Registers

None

5.2 Hardware

None

6. Controls

6.1 Entry Points

F32x02

6.2 exit Points

Return is made to ICAP

7. subroutines Used

C0x01 class of service initialization

E01x01 schedule F07X06 to Output (DPU Scheduler)

F04x01 work Area Assignment

F07x06 schedule Pre out

F02x01 link to CPU Queue

Schedule C01X01 with CHT as Work Area

F02x03 link WA back to I/O Queue

F14x01 call History Table Address Calculation

F32x01 scan I/O Queue

F32x03 return to ICAP

F33x01 rj translation

F36x02 handles Reroute

F36x06 cr subroutine: Dump Data into FWC and Status into SWE

F38x01 schedule Next Program

F38x03 schedule Error Program

F38x04 abort I/O Operation

K05x01 om-cfs recognition Test

L20x05 elt, diarot, diabrt

log - -

S31x01 check CCX Errors

8.1 DISCUSSION

This module handles data transmissions from CCR and markers to the computer central processor. The first case to be treated here will be a call processing origination. F32X03 is entered by the interrupt cause and analysis program for a CCR ready interrupt. F32B checks to see whether any MANIAC conditions exist on the ready interrupt. The I/O time-out audit is reset for the particular ready interrupt. The standard status word and data words 0 and 1 are gathered. At this point originations are separated from terminations. The CSO field is interrogated to determine if any blockage was indicated.

Next, the register junctor identity is translated from the marker data words. Then the call history table address associated with the call is calculated. The register sender memory is instructed and call history table initialized. Marker malfunction interrupts are checked for any MANIAC's. And C01 (the first call processing module) is scheduled with the call history table used as a work area.

The queues are scanned for any other jobs, if one is found it is initiated if not control is returned to Interrupt Cause and Analysis.

The second case is data sent from a Terminating marker to the computer central processor for a termination. Four terminating marker data words are unloaded from the CCR. The section field of the TM frame word is altered to correspond with the frame word passed by call processing. Call processing's next program is scheduled and the queues are scanned for another job to initiate. Afterwhich control is returned to Interrupt Cause and Analysis program.

The third case is that of the diagnostic access. The options for these accesses are:

1. Schedule upon ready

2. Schedule upon interval timer expiration

3. Reset the marker

4. Send shift register data

After retrieving the standard status word a check is made to determine whether diagnostic was an originating marker, a terminating marker or a CCR diagnostic. For a TM or a CCR diagnostic a status dump is performed.

For marker diagnostics the shift register data access will abort the job, schedule the next program and scan the queues.

For a fault or timeout with schedule on idle option the originating marker in question will be reset and the queues will be scanned.

For test calls an indicator will be set and RJ translation will be done and call history table address will be calculated except that C01 will not be scheduled because this is not a real origination.

Status dump may be taken if the access indicates. The CCR hardware is cleared down and reset for further use.

F-33-figs. 57 -57a

1. name

f33 - register Junctor Translation Program Module

2. PURPOSE

This module translates an Originating Marker communication frame, containing a line matrix R-Unit Outlet identity (LRO) or a trunk register B-Unit outlet identity (TBO), into the identity of the connecting Register Junctor (RJ number and Register Sender section number). This allows completion of the path from the inlet into the Register Sender.

3. FUNCTIONS

Module F33 performs the following functions:

a. Determines if the LRO or TBO identity input is within the range of equipped units and is a valid unit.

b. Looks up, in the RJ translation tables, the local RJ or an incoming trunk RJ that is valid and connects to the client-specified LRO or TBO.

c. Returns to the program that requested the translation with the local RJ or incoming RJ identity (this identity includes the Register Sender section containing the RJ).

4. inputs

4.1 software

4.1.1 core Tables

Fap - pointer to Absolute Matrix Table.

Fer - error Constant Register Junctor Translation Table

Flb - pointer-to-Line Register Junctors for Office Section 2 Table

Flr - line Register Junctor Table

Fsa - absolute Matrix For Subsection 1 Table

Fsb - absolute Matrix for Subsection 2 Table

Fsc - absolute Matrix for Subsection 3 Table

Fsp - pointer-to-Section Tables for Register Junctor Table.

Fta - pointer-to-Trunk Register Junctor for Office Section 1 Table

Ftb - pointer-to-Trunk Register Junctor for Office Section 2 Table

Ftr - trunk Register Junctor Table

Fts - pointer for Trunk Register Junctor for Selector Section Table.

4.1.2 Drum Tables

None

4.1.3 Registers

X1 - work area identity (optional).

Ra - originating Marker Data Frame word O.

Rq - originating Marker data frame word 1.

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

5.1.2 Drum Tables

None

5.1.3 Registers

X2 - trouble indicator.

Ra - rj identity

Rq - indicates incoming RJ or local RJ.

5.2 hardware

none

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F33x01: this entry point is called via the PGLINK macro to obtain RJ translation as a closed subroutine.

6.2 EXIT POINTS

Return is made to client.

7. SUBROUTINES USED

None.

8. NARRATIVE

8.1 discussion

the general method used to determine the appropriate local RJ (LRJ) or incoming RJ (IRJ) output is briefly described here. A lookup in Table FLR (containing LRJ's) or Table FTR (containing IRJ's) is made to find the RJ indexed by the input LRO or TBO. In this lookup process, two levels of indexing are used, first X1 for the section, then X2 for the matrix, to obtain a pointer to a block of 10 or 20 words in Table FLR or FTR. This block corresponds to a certain value for SEC, SBS, and MTX. The precise location of the desired RJ identity within the block is pointed to by the value of the RUO (local RJ) or BUN and BUO (incoming RJ). Thus, the complete definition of LRO or TBO identity points to the desired RJ identity.

In order to establish the final link of the path from the line group to the local RJ or from the trunk register group to the incoming RJ, it is necessary to identify the one unique RJ that connects to the specific RUO (for the trunk register group path), or to the specific BUO (for the trunk register group path). Therefore, when F33 is entered with part of an Originating Marker data frame (data words 1 and 0), containing the identity of an LRO or a TBO, F33 determines (translates) the identity of the RJ related to his LRO or TBO.

The complete identity for an LRO consists of the following fields in an Originating Marker data frame: Section (SEC), Subsection (SBS), Line Matrix Number (MTX), B-Unit Outlet (BUO), and R-Unit Outlet (RUO). The TBO consists of the following fields: Section, Subsection, Trunk Register Matrix (MTX), B-Unit Outlet, and B-Unit (BUN). The input to F33 also includes the AB group number. When the value of the AB group is 1 through 5, then the input is an LRO.

F33 returns the RJ identity to the client in the form of the RJ identity field of Table FWA.

Specifically, the output consists of an RJ number ( 0 through 191), and a Register Sender Section number (0 or 1): all RJ's are within RS section 0 or 1.

When the entry is an LRO, the RJ number identity is located by a lookup in Table FLR. This table contains a listing for all local (non-trunk serving) RJ's, and the location of the LRO identity within Table FLR specifies a particular RJ.

The general block of 10 or 20 words within Table FLR specifies the section, subsection , and matrix of the LRO which connects to a given RJ. The same RJ number is at more than one location within the same data block, because the RJ is connected to more than one R-Unit. Additionally, the RJ number may be located within several different data blocks, when the RJ is connected to more than one matrix. (In the case of the incoming trunk RJ, the connection will be to subsections and matrices.) Of course, only one RJ matches a given LRO entry.

The RJ number identity contained in Table FLR also has a validity bit indicating the useability of the particular RJ and LRO; when the validity bit indicates unuseability, or when the RJ is not found or is out of range. Register X2 equals 1, thereby indicating general trouble.

A similar procedure is followed for TBO's, which connect to incoming RJ's, as with LRO's, which connect to local RJ's, except that the IRJ identities are contained in Table FTR. In addition, when the given TBO is located in an EAX Selector Section, rather than Office Section, then an additional decoding process must be performed using Table FAP to determine the altered matrix identity associated with the TBO input.

8.2 TECHNIQUE

None.

Input to FIG. 115

Ra = data word 0

rq - data word 1

output:

xr1 is saved

xr2 = trouble indicator

0 = no error

1 = error

ra = rj identity

rq = fwbirj bit

notes:

1. bun is used for trunk register mtx and ruo for line mtx.

2. at this point, we verify actual values for sec, sbs,mtx.

3. at this point, we verify actual values for ruo(bun) and buo.

f34 - figs. 58 - 58a

1. name

f34 - standby Interrupt and Timer Expiration Handler

2. PURPOSE

The purpose of module F34 is to properly handle Originating Marker standby interrupts and to provide an entry line used (entered) when a timer expiration occurs during a diagnostic request.

3. FUNCTIONS

Module F34 performs the following functions:

a. OM Standby Interrupt Handler - F34X03

1. Provides Reset and Ignore and Reroute MANIAC handling for standby interrupt sense lines.

2. Resets interrupting marker's sense line.

3. Sets indicator for F32A that OM is ready for transmission (FCCOMT).

4. Calls F32X01 to scan I/O request queues.

5. Enables Schedule on Idle option for CCR users (F31 clients).

6. Returns to ICAP.

b. Timer Expiration Handler - F34X01

1. Terminates I/O request and schedules CCR user's next program.

2. Hitches special timer work area (FIX) to special hitching post (FHPA22).

3. Provides status and data dumps of source and/or sink CCR's, if not provided previously, for CCR to CCR transfer requests.

4. Calls F32X01 to scan I/O request queues (containing F31 clients).

c. Marker-Malfunction Cleanup Subroutine, F34X05.

1. Terminates I/O request and schedules CCR user's next program.

2. Calls F32X01 to scan I/O request queues.

3. Returns to calling program.

4. INPUTS

4.1 software

4.1.1 core Tables

Esl - executive Storage Location

Fcc - crr control Table.

Fhp - hitching Post.

Fwa - executive Interface Work Area

4.1.2 Drum Tables

None

4.1.3 Registers

X1 - work Area Address (F34X01).

4.2 hardware

none

5. OUTPUTS

5.1 software

5.1.1 core Tables

Esl - executive Storage Location

Fcc - ccr control Table

Fhp - hitching Post

Fwa - executive Interface Work Area

Fwc - tm received information

Swa - ccr dump area A

Swc - ccr dump Area C.

Swe - ccr dump Area E

5.1.2 drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F34x01: timer Expiration.

F34x03: standby Interrupt

F34x05: marker Malfunction Cleanup.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

None: Return to user.

7. SUBROUTINES USED

Entry: Functional Names

Points

F36x03: program Name (F36): CCR I/O

F36x08: handler Subroutines No. 1

F36x06: none

F32x01: program Name (F32A): CCR I/O Initiation Handler.

F38x03: program Name (F38): CCR I/O.

F38x0: handler Subroutines No. 2

L20a: diarqt - request Acceptor.

8. NARRATIVE

8.1 discussion

8.1.1 f34x03 - om standby Interrupt Handler

After checking MANIAC function and finding none set, F34X03 checks to see if a maintenance request F31 client is expecting this interrupt. If no request is in progress, a request to DIACON is made for maintenance routining of the marker. If a request is in progress, the sense line is reset and a check is made to see if transmission has been initiated. If not, FCCOMT is set indicating the OM is ready for transmission and F32X01 is called to attempt initiation of the transmission. If the transmission has been initiated, a check is made to see if the user (F31 client) request scheduling or idle. If so, field FWAMD5 is set indicating that marker went idle and the user's next program is scheduled. Then F32X01 is called to scan I/O queues.

Finally control is returned to ICAP.

8.1.2 f34x01 - timer Expiration Handler.

First, the special work area, table FIX, is hitched to the special work area, hitching post FHPA22. Then the current I/O request is terminated via a call to F36X03. A check is made to see if the request was a CCR to CCR transfer. If so, the I/O Audit bits are reset for both CCR's and a check is made to see if status and data dumps were provided for the sending CCR (FWAMD5) and the receiving CCR (FWAMD2). If either bit is reset, a status and data dump is provided and bits FWAMD4 and FWAMD3 will both be set, thus indicating that the dumps have been provided. The CCR's are then restored to their original scan state.

The CCR's are then restored to their original scan state.

8.1.3 F34X05 - Marker-Maintenance-Cleanup Subroutine

The operation is the same as for F34X01, except that the special work area is not received input and therefore the work area is not hitched.

8.2 TECHNIQUE

Not Applicable.

F35 - figs. 59 - 59h

f35a

1. name: manipulator Request Analysis Routine

2. PURPOSE: This module performs a routine preliminary analysis and routing of all requests for drum I/O.

3. functions:

a. Provides interlock for proper control of the non-resident area.

b. Determines the type of access being requested.

c. Performs necessary routing of request for additional processing, if required.

d. Properly formats the work area and calls the drum scheduler for non-resident accesses.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa - user's Work Area

Eps - executive Parameter Storage

Fan - access Number Table

Ftd - table Directory

4.1.2 Drum Tables

Fcb - control Buffer Table

4.1.3 Registers

Xr1 - address of User's Work Area

Xr2 - user's Access Number

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - work Area

Fje - executive Junk Storage

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

Xr2 - index to Table Director (FTD)

5.2 hardware

none

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F35x01: access point whereby a user requests drum input/output.

F35a02: return from module F35P, when access number is less than 25 but not a request predefined for fast access processing.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

F29x01: drum Scheduler - Called when access is determined to be non-restricted.

F35p01; fast Access Formatter - Called when access number is less than 25, for determination of fast-access requirement and associated processing.

F35b01: parameter Collection Routine - Called for restricted accesses.

7. SUBROUTINES USED

None

8. NARRATIVE

8.1 discussion

all user access to the drum must be carried out via the Manipulator. When an access request is first accepted from the user, a certain amount of common processing is necessary to properly control system interlock functions and determine the exact nature of the request so that it can be channeled through required and appropriate processing.

8.2 TECHNIQUE

Requests entering the Manipulator fall into two general categories:

a. Requests from drum resident programs.

b. Requests from core resident programs.

In processing requests from drum resident programs, care must be taken such that the non-resident area is properly controlled. For this purpose, a special interface is provided between the Manipulator and the Drum Scheduler/Handler. This will be further clarified later.

For either drum or core resident requests, however, a determination must be made as to the specific nature of the user's request; this is accomplished by use of the user's access number. These access numbers uniquely identify each requests and are predefined by the user and the Manipulator. These access numbers divide user's into the following categories:

1. Core resident requests

a. qualifying for fast access

b. qualifying for general access

c. non-restricted

2. Drum resident requests s

a. requiring control table access

b. non-restricted

All core resident accesses qualifying for fast access have access numbers less than or equal to 25. The term "fast access" merely means that a dedicated code path exists for each request so designated (note: not all requests with access numbers less than 25 qualify for fast access processing). Requests which do not qualify for fast access processing are channeled into a generalized, less efficient processing path.

Whereas the control information for core resident requests is itself core resident, the control information for drum resident requests is drum resident. Therefore, drum resident requests which require control information will require the reading of the necessary table from drum before the access can be completed. The Manipulator recognizes such requests, and will automatically initiate the reading of the necessary control table as a preliminary to processing the request. A second possibility is that the requestor may provide all information necessary to properly access the specified drum data; therefore, no control table is required, and the Manipulator will forward the request on to the Drum Scheduler, with only minimal processing. Such requests are termed "non-restricted". It should be noted that non-restricted accesses are not limited to drum resident programs; such accesses may be utilized by core resident programs as well.

As noted previously, control of the non-resident area is an important factor where the requestor is drum resident. For example, the requestor may wish to release the non-resident area as a function of requesting drum I/O. However, the Manipulator is structured such that it can not concurrently process several requests requiring access to its drum-resident control tables. Therefore, to prevent the initiation of other requests, the Manipulator will specify (via the special interface alluded to previously) that the non-resident area is to be held during the access of its control tables. When the control tables have been brought in and the Manipulator, using the information contained therein, makes the actual data access to drum as requested by the user, the non-resident area is released. Such a mechanism prevents attempted multiprocessing of drum resident requests.

F35b

1. name: manipulator Parameter Collection Routine

2. PURPOSE: This module collects various fields supplied by a requestor of drum I/O and formats them into one or more key parameters to be used in making the requested drum access.

3. FUNCTIONS:

a. Extracts parameters from either the call history table or work area, as specified by the requestor.

b. Scales each parameter, if required, by a predefined scale factor.

c. Range checks each parameter, if required, against a predefined maximum value.

d. Compresses parameters, if required, according to a predefined number base.

e. Formats collected parameters into one or more predefined key words.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa - user's Work Area

Cht - user's Call History Table

Ftd - table Directory

Fpc - parameter Collection Table

4.1.2 Drum Tables

Fcb - control Buffer Table

4.1.3 Registers

Xr1 -work Area Address

Xr2 - table Directory Index

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fje - executive Junk Storage

Fwa - user's Work Area

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

Xr2 - parameter Collection Table Index

5.2 HARDWARE

None

6. CONTROL

6.2 exit points

exit: Reasons for Exit

Points

F35n02: error Scheduling Routine - Called if a parameter fails a required range check.

F35c01: common Functions Routine - This is the normal exit and is called at the conclusion of parameter collection.

7. SUBROUTINES USED

None

8. NARRATIVE

8.1 discussion

one of the principal functions of the Manipulator is to provide an interface between the user and the system data base, such that changes in the data base structure need not be the concern of the user. This objective is accomplished by the user providing those parameters necessary to access a given drum table, not necessarily in this format required for the actual access. The Manipulator, using tables which describe the data base structure, then formats these parameters as required to properly access the specified data.

8.2 TECHNIQUE

Basically, the parameters which are passed by the user go to make up the search key used to access the required table. But the Manipulator must first format these various parameter fields into a search key corresponding to the particular table structure.

Associated with each such access is an entry in table FPC, the parameter collection table. This table entry in essence describes:

1. parameter fields supplied by the user.

2. the composition of key words (e.g., a search key) which are to be derived from these parameters fields.

3. special utility functions (e.g., range checking, scaling, etc.) to be performed on specified parameter fields.

The Manipulator will accept input parameters from either the user's work area or call history table, as specified. The control information for each parameter specifies the position in the user's buffer in which the parameter is located, its maximum permissible value, a scale factor (if required), the position which the parameter is to occupy in the key word being constructed, and other factors. Using this control information, the Manipulator removes a specified parameter from the user's buffer and performs any requested utility functions (such as scaling or range checking). The parameter is then merged into its appropriate position in the key word under construction.

The end result of collecting several such parameters will be the required keywords for the drum access. Generally, only one keyword, the search key, need be constructed. However, some accesses require construction of additional key words such as the number of words contained in each cell of the table being accessed, or an index value into a portal of the table.

F35c

1. name: manipulator Common Functions Routine

2. PURPOSE: This module performs functions common to all drum accesses; i.e., certain parameters common to many access types are generated here in preparation for the drum access.

3. FUNCTIONS

a. Generates following parameters:

1. DCU instruction word.

2. Number spill words required.

3. Data mask index.

4. Drum address (i.e., DCU pair, segment, and physical address).

5. Read/Write indicator.

b. Determines, via a predefined algorithm, the portal number to be accessed, using user-supplied parameters.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa - user's Work Area

Ftd - table Directory

Fpd - portal Description Table

4.1.2 Drum Tables

None

4.1.3 Registers

Xr1 - work Area Address

Xr2 - tables Directory Index

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - user's Work Area

Fje - executive Junk Storage

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

Xr2 - table Directory Index

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F35c01: entered from F35B following parameter collection.

R35c02: entered as return from F35M.

6.2 exit points

exit: Reasons for Exit

Points

F35d01: single Level Counter Search Routine - Called to perform final processing unique to counter - start (block) accesses.

F35e01: single Level Associative Search Routine - Called to perform final processing unique to associative search accesses.

7. SUBROUTINES USED

Entry: Functional Names

Points

F35m: portal Number Calculator - This module is called to calculate the portal number; each entry line corresponds to a specific algorithm unique to certain accesses for which this calculation is required.

8. NARRATIVE

8.1 discussion

all accesses to drum must specify certain common parameters which are not unique to any given access. An example of such a parameter would be the DCU instruction word, required to instruct the hardware as to what type of search is being requested. These parameters may be predefined in some cases; in others, dynamic calculations are required to determine them.

8.2 TECHNIQUE

Parameters which may be predefined at assembly time are coded into the FTD (table directory) and FPD (portal description) entry for each specific access. At run time, these parameters are retrieved from FTD and FPD and placed in a temporary buffer area.

The portal number may be supplied by the user, in which case Manip performs no calculation. However, generally, the portal number is determined by parameters unique to a given call being processed thru the system. In such cases, Manip will execute a predefined algorithm, utilizing these calldependant parameters, to arrive at the appropriate portal numbers for the table being accessed.

F35d

1. name: manipulator Single Level Counter Search Routine

2. PURPOSE: The purpose of this module is to perform routine initialization of those parameters unique to counter start drum accesses.

3. FUNCTIONS

Generates certain parameters required for counter start accesses.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa - user's Work Area

Ftd - table Directory

Fje - executive Junk Storage

4.1.2 Drum Tables

None

4.1.3 Registers

Xr1 - work Area Address

Xr2 - table Directory Index

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - user's Work Area

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

Xr2 - table Directory Index

5.2 Hardware

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F35d01: entered by F35C for initialization of counter start parameters.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

F35g01: manipulator Termination Routine - Called for final processing and termination to Drum Scheduler.

7. SUBROUTINES USED

None

8. NARRATIVE

8.1 discussion

this module performs generation of parameters required specifically for counter start accesses to the drum.

8.2 TECHNIQUE

Certain parameters may be predefined at assembly time; these are coded into the table directory (FTD) and retrieved by Manip during execution for insertion into a temporary buffer.

Some parameters (i.e., the index into the portal and the word count) may be specified by the user and supplied as input to the Manipulator access. For these cases, Manip will utilize these parameters; generally, these are generated during the parameter collection process (see documentation on module F35B).

F35e

1. name: manipulator Single Level Associative Search Routine.

2. PURPOSE: To generate those parameters unique to an associative search access to drum.

3. FUNCTIONS: Generates and formats those parameters which are uniquely required for an associative search access of drum.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa - user's Work Area

Ftd - table Directory

Fje - executive Junk Storage

4.1.2 Drum Tables

None

4.1.3 Registers

Xr1 - work Area Address

Xr2 - table Directory Index

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - user's Work Area

Fje - executive Junk Storage

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

Xr2 - table Directory Index

5.2 Hardware

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F35e01: called by F35C for formatting and generation of parameters unique to associative search accesses.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

F35g01: termination Routine - Called for final processing and termination to the Drum Scheduler.

7. SUBROUTINES USED

None

8. NARRATIVE

8.1 discussion

certain parameters are unique to the associative search access (i.e., not required for a counter start access). These parameters must therefore be initialized separately.

8.2 TECHNIQUE

As in other portions of Manipulator processing some parameters may be pre-defined, while others may be constructed (if required) from user-supplied access parameters.

The principle purpose of this module is to generate the word count, index value, search key and mask word for the associative search access. The word count and index value may be pre-defined or dynamically calculated. The search key is always dynamically calculated, while the mask word is always pre-defined. Pre-defined items are retrieved from the respective table directory entry and placed in a temporary buffer area. Items which are dynamically calculated are generated in the parameter collection routine (F35B) using user-supplied parameters as input.

F35g

1. name: manipulator Termination Routine

2. PURPOSE: The purpose of this module is to collect parameters generated by previous processing routines and format them into the work area.

3. FUNCTIONS:

a. Collects all generated parameters and completes final initialization of the work area.

b. Terminates to Drum Scheduler.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa -user's Work Area

Fje - executive Junk Storage

4.1.2 Drum Tables

None

4.1.3. Registers

Xr1 - work Area Address

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - user's Work Area

Fje - executive Junk Storage

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F35g01: entered from either F35D or F35E, to perform final processing and terminate to Drum Scheduler.

F35g02 entered from F35H for same purpose.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

F29xq1: (drum Scheduler) - Called to initiate or schedule the drum access.

7. SUBROUTINES USED

None

8. NARRATIVE

8.1 discussion

this routine serves as a final processor and common exit point from the Manipulator.

8.2 TECHNIQUE

The various parameters generated by previous processing are now collected from the temporary buffer and placed in the appropriate fields within the work area. These include the drum address register word and the DCU instruction word. Also, a "pseudo" spill word is formatted and placed in the appropriate location if the access is counter start and a single spill word is required. The drum address, which is supplied in logical format, is converted by algorithm to its physical counterpart, as required for input to the DCU hardware.

Finally, Manipulator processing is complete when control is transferred to the Drum Scheduler.

F35h

1. name: manipulator Exhaustive Search Routine

2. PURPOSE: This module will successively search each portal of a given table for the data requested by the user.

3. FUNCTIONS:

a. Determine if the required data has been located.

b. If so, schedules the user's next program.

c. If not, determines next portal to be searched and initiates the access.

d. If all portals have been searched and coincidence has not been found, schedules user's next program with indication of no coincidence.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa - user's Work Area

FPD - Portal Description Table

4.1.2 Drum Tables

None

4.1.3 Registers

Xr1 - work Area Address

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - user's Work Area

5.1.2 Drum Tables

None

5.1.3 Registers

Xr1 - work Area Address

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F35x02 - entered from executive as next program for each portal searched.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

F35g02: manipulator Termination Routine - Called to initiate an access to the next portal of a table.

F35n03: schedule User's Next Program - Called to schedule the user's next program at the conclusion of the exhaustive search.

7. SUBROUTINES USED

None

8. NARRATIVE

8.1 discussion

some users may require that an entire table be searched for given information, not knowing in which portal of the table the information resides. To facilitate this process, the Manipulator provides the internal capability to successively search all portals of a given table. This frees the user from the code and logic required to continue searching each portal of the table until coincidence is found or all portals are exhausted.

2. TECHNIQUE

In order to ascertain the results of each portal search, Manip specifies itself (F35X02) as the next program for each access to drum. Upon regaining control at this entry point, the non-coincidence indicator of the work area is checked. If it is not set, coincidence was found in the last portal searched and the access is complete; the user's next program is then scheduled by Manip.

If this indicator is set, coincidence was not found in the last portal searched. A test is made to see if all portals have now been searched; if so, the user's next program is scheduled with the indication that coincidence could not be found. If all portals have not been searched, the information describing the table's next portal is extracted from FPD and properly formatted into the work area. The Manipulator Termination Routine is then called to initiate the next drum access.

This process is reitereated until (1) coincidence occurs, or (2) all portals of the specified table have been searched.

F35m

1. name: portal Number Calculator

2. PURPOSE: F35M contains algorithms to develop portal numbers for drum access requested by call processing or update modules.

3. FUNCTIONS: F35M calculates portal numbers required to access the following tables:

a. CDN

b. CLN

c. CRN

d. CSX

e. CGT

4. inputs

4.1 software

4.1.1 core Tables

Cep - engineerable Office Parameters

Chc - om data Frame Received

Cja - original Class Data

Fac - npa normalization Table

Fal - search Key Conversion Table

Fdn - directory Number Normalization Table

Fje - executive Junk Storage

Ftd - drum Access Description Table

Fwa - executive Interface Work Area

Fwb - cp register/Sender Memory Image

Fwc - tm received Information

4.1.2 Drum Tables

None

4.1.3 Registers

X1 - client's Executive Interface Work Area Address

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - executive Interface Work Area

Fje - executive Junk Storage

5.1.1 Drum Tables

None

5.1.3 Registers

Ra - portal Number to be searched.

X1 - executive Interface Work Area Address

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry : Reasons for Entry

Points

F35m01: f35m01 is entered to convert Directory Number to portal to search.

F35m02: f35m02 is entered to convert office section and matrix to drum portal to search.

F35m03: f35m03 is entered to convert route number from FWASW1 to drum portal to search.

F35m05: f35m05 is entered to convert office section and matrix to drum portal to search.

F35m06: f35m06 is entered to search table FAC for area code match and add NPA from FAC to the search table FAC for area code match and add NPA from FAC to the search word for a six-digit translation.

F35m07: f35m07 is entered to selected the proper party from a two-party line and specify the drum portal where the LNI of the party resides.

F35m08: f35m08 is entered to load the A register with FJE009 (Parameter collected in F35B) for drum portal to search.

F35m09: f35m09 is entered to test the search word to compute the drum portal to search.

F35m10: f35m10 is entered to extract ("collect") data from the client's work area to be processed by F35M01.

F35m11: f35m11 is entered to grab search word from client's work area for processing by using table FAL and portal determination routines in F35M05.

F35m12: f35m12 is entered to determine segment, drum address and DCU pair information for next drum access.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

F35c02: manipulator Common Functions Routine (F35C) is entered at F35C02 with a portal address to continue processing for a drum access.

F35n04: manipulator Identifier Reconstruction Routine F35N04 is entered to set client's no coincidence found indicator and schedule client's next or error program.

F35c03: manipulator Common Functions Routine (F35C) is entered at F35C03 with drum address information to continue drum access.

8. NARRATIVE

8.1 discussion

f35m is called from F35C (Common Function Module) when no portal is specified by the client program. The selected routine constructs the required portal number for the access and returns to F35C02 or F35C03.

8.2 technique

f35m01 selects the portal for table CDN. Using the first four digits table FDN is searched for a match. When that is found the portal number is extracted annd control is returned to F35C02. If no coincidence is found the error program is scheduled through F35N04.

F35M02 determines whether the matrix number falls between 1 and 5 or 6 through 10. If the number is greater than 5, one is added to the portal number. Control is then returned to F35C02.

F35M03 extracts the route number from the work area and clears all but the two high order bits. The word is then properly positioned in the A-register and control is returned to F35C02.

F35M05 extracts the section number and the matrix from the work area. The two items are used as search key to find the proper pointer to the portal description word in table FAL. Control is then returned to F35C02.

F35M06 searches table FAC for the area code match. If a match is found the normalized area code is extracted and added to the search word for a six digit translation. If the search of table FAC is successful control is returned to F35C02, otherwise F35N04 is called to schedule the error program.

F35M07 extracts the pointer to the call history table; determines if it is a two-party line; selects the proper party and specifies the portal where the LNI of the party resides. Control is returned to F35C02.

F35M08 loads the A register with FJE009 (Drum Address Register) and returns to F35C02.

F35M09 tests the search word to determine the section number. If the section number is greater than 2 the portal number is incremented by 2. The matrix is range checked and if it is not greater than 5, the portal number is incremented again by 1. Control is then returned to F35C02.

F35M10 extracts data from the work area to form a search word to be processed by F35M01.

F35M11 grabs the search word from the work area and formats the search word for table FAL. The search of table FAL is an internal routine found in F35M05. Upon completion of the search F35C02 is called.

F35M12 determines whether the DCU pair and/or the portal number is to be altered prior to calling F35C03.

F35n

1. name: identifier Reconstruction Routines

2. PURPOSE: The purpose of F35N is to extract data from the call history table or the work area, order the data for the drum search, and schedule F40.

3. functions: module F35N performs the following functions:

a. Extracts the first four digits of a 1 or 2 party line.

b. Schedules the error program is no coincidence is found in table FDN.

c. Schedules users next program through closed subroutine F40X06.

4. inputs

4.1 software

4.1.1 core Tables

Cep - engineerable Office Parameters

Cja - original Class Data

Esl - executive Storage Location Table

Fdn - directory Number Normalization Table

Fje - executive Junk Storage

Fpd - portal Description Table

Fwa - executive Interface Work Area

Fwb - cp register Sender Memory Image

4.1.2 Drum Tables

None

4.1.3 Registers

Ra - client's Executive Interface Work Area Address

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - executive Interface Work Area

5.1.2 Drum Tables

None

5.1.3 Registers

X1 - client's Executive Interface Work Area Address.

Rq - eio value for F40X04.

X2 - tells F40X06 Manip is calling.

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F35n01: f35n01 is entered for LNI to Directory Number Conversion Completion

F35n02: f35n02 is entered to set EIO for parameter conversion and schedule client's error program.

F35n03: f35n03 is entered when access is complete to schedule user's next program.

F35n04: f35n04 is entered to schedule client's next or error program when drum coincidence was not found.

F35n10: f35n10 completes LNI to Directory Number Translation for update.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

E01x04: e01x04 is entered to release the control of the CPU.

7. subroutines used

entry: Functional Names

Points

F40x04 client's ERP Scheduling Subroutine.

F40x06 client's NPG Scheduling Subroutine.

8. NARRATIVE

8.1 discussion

f35n extracts a pointer from either the call history table or work area and searches table FDN for a match of the pointer. If the search is successful a four digit code is transferred from table FDN to table CXK and F40X06 is called to schedule the next program. Should the search not be successful the error program is scheduled through F40X04.

Interrupts are disabled prior to entering F40 and enabled upon return. Control is released to F01X04.

8.2 technique

f35n is called for identifier reconstruction from call processing and update accesses. F35N01 services Call Processing and F35N10 services update. Both routines are capable of working with either TPL or TPS offices. The major difference between the routines is that the input data to F35N01 is in the call history table while the input data for F35N10 resides in the work area.

F35N01 determines whether party one or party two is to be serviced. The pseudo portal number is used as the Key to search table FDN. The first four digits are extracted from the FDN entry and stored in table CXK. If it is a TPL office F40X06 is called to schedule the next program. If the office is TPS the address or coincidence is converted to TBCD (digits 5, 6 and 7) and stored in table CXK. F40X06 is then called to schedule the next program. F35N10 provides a similar service for update requests. Input data is stored in the work area instead of the call history table. Again a test is made to determine whether the office is TPS or TPL. The TPS office requires additional processing prior to calling F40X06 to schedule the next program.

F35N02 is an error processing routine. Parameter errors are flagged through this module. A call to F35N04 indicates no coincidence found. An additional test is made to determine whether coincidence is required. If not, the next program is scheduled; if coincidence is required the error program is scheduled.

F35N03 is the routine used to schedule F40X06. Upon return from F40X06 or F40X04 control is returned to the executive through E01X04.

F35p

1. name: manip fast Access Formatter.

2. PURPOSE: F35P processes Call Processing's most frequently used accesses to drum. These accesses are coded away from the normal line of processing to conserve on processing time of calls.

3. FUNCTIONS: The function of F35P is to do the following:

a. Collects and formats the required parameters for the access.

b. Performs range checks on the parameters if required.

c. Selects the portal on drum to be entered.

d. Sets the number of words per cell.

e. Initializes the mask word and the instruction word.

d. Formats the instruction words for the DCU scheduler and calls the DCU scheduler.

4. INPUTS

4.1 software

4.1.1 core Tables

Cdn - local Directory Number.

Cep - engineerable Office Parameters.

Cgd - tgn to Directory Number.

Chc - om data Frame Received.

Che - pretranslation Access Store Data.

Chh - route and Path Data.

Cja - original Class Data.

Cln - line Equipment Number.

Clo - line Matrix Outlet.

Cpd - pretranslation Data.

Csx - selector Matrix Outlet.

Ctn - trunk Equipment Number.

Fal - search Key Conversion Table.

Fdn - directory Number Normalization Table.

Fje - executive Junk Storage.

Fpd - portal Description Table.

Fwa - executive Interface Work Area.

Fwb - cp register Sender Memory Image.

Fwc - tm received Information.

4.1.2 Drum Tables

None

4.1.3 Registers

X1 - executive Interface Work Area Address.

X2 - manipulator Access Number.

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fwa - executive Interface Work Area Address.

5.1.2 Drum Tables

None

5.1.3 Registers

X1 - executive Interface Work Area Address.

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F35p01: f35p01 is scheduled as the only entry point into F35P.

6.2 exit points

exit: Reasons for Exit

Points

F29x01: dcu scheduler program: F29X01 is called to schedule the drum operation specified by the client thru F35P.

F35n02: manip Parameter Error Routine: F35N02 is entered when F35P finds an error in the parameters passed by the client. F35N02 schedules the user's ERP with an EIO of 2.

F35n04: manip no Coincidence Found Routine: F35N04 is entered when no coincidence is found while associatively searching a table. F35N04 schedules the user's ERP or NPG depending on whether the client has specified coincidence required.

7. SUBROUTINES USED

None

8. NARRATIVE

8.1 discussion

f35p formats request for the following MANIP accesses: FM001 (CLO), FM003 (CGD). FM004 (CSX), FM006 (CTN), FM007 (CDN), FM009 (CRN), FM021 (CTT), FM022 (CPD), FM023 (CTT), FM025 (CLN). F35P is entered with the work area address in X1 and the requested access number in X2. The routine to process the access is entered through a BUN table modified by X2. If it is not a fast access to be processed, control is returned to F35A02.

Most of the parameter collection is performed by the KEYGEN macro. Special Handling is required in only a few cases. Portal algorithms are required for several accesses (FM004, FM007, FM009, and FM025). Special handling is also required for FM007 to determine whether the office is TPL or TPS.

8.2 technique

not Applicable

Notes to FIG. 59J

*1. f40x04 - will Set FWAE10=(RO) and schedule the error program.

2. F40X06 - Will schedule the next program.

F36 - figs. 60 - 60e

1. name: f36 - ccr i/o handler Subroutines No. 1

2. PURPOSE: In order to centralize functions and conserve core memory, six subroutines have been provided in module F36 for use by other CCR I/O Handler modules.

3. FUNCTIONS: Module F36 performs the following functions:

a. F36X01 - Unlink diagnostic request clients from I/O queue, (containing "F31 clients") hitch request to maintenance hitching post, and start timer for I/O request.

b. F36X02 - Handles reroutes via scheduling or branching to the appropriate requested module.

c. F36X03 - Cleans up I/O request when complete. This includes resetting timers and/or audits bit associated with request, resetting hitching post and marker busy bit, and resetting markers and restoring CCR's to original scan state if modified for this request.

d. F36X05 - Provides proper configuration of CCR's for requests requiring special configurations.

e. F36X06 - Unloads all data and/or status word from CCR's.

f. F36X08 - Reconfigures CCR's as requested by CONFIG.

4. inputs

4.1 software

4.1.1 core Tables

Fsl - executive Storage Location.

Fcc - cm-rj identity.

Fhp - hitching Post.

Fwa - executive Interface Work Area.

Hel - i/o abort Entry Lines.

Fex - executive Inst for F36.

Ftl - timer.

Hst - system Status.

4.1.2 Drum Tables

None

4.1.3 Registers

X1 - work Area Identity.

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Esl - executive Storage Location.

Fcc - om-rj identity.

Fex - executive Instructions for F36.

Fhp - hitching Post.

Fix - ccr maintenance Work Area.

Ftl - timer.

Fwa - executive Interface Work Area.

Hel - i/o abort Entry Lines.

Hst - system Status.

Swd - ccr dump Area D.

5.1.2 drum Tables

None

5.1.3 Registers

Ra - error Indicator for F36X06.

5.2 hardware

none

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F36x01: see Section 3 for all listed entry points

F36x02

f36x03

f36x05

f36x06

f36x08

6.2 exit points

exit: Reasons for Exit

Points

None: Return to client.

7. SUBROUTINES USED

Entry: Functional Names

Points

F03: unlink from Priority Queue.

F34 originating Marker Standby Interrupt Handler.

E02 interval Timer Request Acceptor.

E03x02 stop Timer (STTIME)

E01x01 timer Expired

S31x01 multiple Channel Recovery

8. NARRATIVE

8.1 discussion

f36x01 will unlink the diagnostic request from the I/O queue and hitch the work area to FHPA08. Then set FCCMJI to indicate a maintenance job in progress, and set FWAFID in the user's work area indicating the request has been initiated. F36X01 will then index into table FTL with FWATMS to obtain the number of 16.6 msec. intervals to pass to E02X01 when it requests the timing of the I/O request. F36X01 then unhitches special work are FIX (FZB) from FHPA22 and calls E02X01 to time I/O request and transfer to F34X01 should timeout occur. It then returns to the calling program.

F36X02 receives as input the two reroute words from the MANIAC program. It then transfers to/or schedules the appropriate module and returns to the calling program.

F36X03 receives as input the scan address for the I/O request it is to clean up and three indicators indicating whether this is a maintenance request, whether to send a reset CPD to a marker.

If the maintenance request indicator is set, F36X03 resets FCCMJI and FCCOMT. If FCCSCR is set, indicating that CCR's are in a special scan state, and no reconfiguration bits for the CCR's are set in FCCREC. F36X03 will set the approprate bits in FCCREC to restore CCR's to original state and then reset FCCSCR and FCCMIU. Then F36X03 will unhitch the work area from FHPA08 and attempt to remove special work area FIX from the timer queue. If the work area was present in the timer queue, it will hitch the work area back to FHPA22.

If the input scan address is for TM, F36X03 will reset the I/O Handler audit Bit for the TM, reset the pair busy bit, and reset the TM pair hitching post.

Then F36X03 will issue the appropriate CPD's if any, and return to the calling program.

F36X05 will set up CCR's for a specified CCR I/O request or a CCR to CCR transfer request. First F36X05 checks the system status table, HST, to be sure that the CCR(s) to be used is not OS. If it finds a CCR OS, it will return to the calling program with an error indication.

If the request is a CCR to CCR request, F36X05 will both CCR's into standby scan mode and point the sink CCR toward the source CCR and provide a status dump of sink CCR in word SWD via a call to F36X06 and then set FCCSCR to 1 and FCCMIU to the identity of the originally online active CCR.

If the request is for a specified CCR, and the specified CCR is not the CCR currently in active use, F36X05 will place both CCR's online standby and master reset the active CCR to eliminate interference during the transmissions. Then F36X05 will set FCCSCR and FCCMUI as above.

In all cases, return is made to the calling program with the sending CCR connected and the receiving CCR disconnected.

F36X06 is entered with five indicators set and two sink addresses furnished and XR2 contains the channel identity of the CCR.

The first indicator checked is for a single status word dump. If set, the standard status word is unloaded at the address in ERG001 and sense group 046 or 047 is stored in the next sequential location.

The second indicator checked is for a full status word dump. If set, the standard status word and the two error status words are stored sequentially, followed by sense group 046 or 047, starting at the address in ERG001.

The third option is a two word data dump. If requested, the first two data words will be stored sequentially at the address in ERG002.

The fourth option is a two word data dump. If requested, the first two data words will be stored sequentially at the address in ERG002.

The fifth indicator checked is whether CCR should be disconnected. If set, the CCR will be disconnected.

Options one and two are mutually exclusive as are options three and four. Control is always returned to the calling program.

F36X08 is entered with its input in FCCREC. FCCREC contains six bits. They indicate:

1. CR B should be placed online and active.

2. CR A should be placed online and active.

3. CR B should be placed offline.

4. CR A should be placed offline.

5. CR A should be placed online and standby.

6. CR B should be placed online and standby.

F36X08 will process any bits set in the order listed and then reset the bits. It will then return control to the calling program with any reconfigured CCR's connected to the I/I bus.

8.2 TECHNIQUE

Not applicable.

Notes to FIG. 60A

Input: ra = second Reroute Word

F37 - figs. 61 - 61d

1. name: f37 - ccr error Isolation and Recovery Module.

2. PURPOSE: Module F37 has been provided to handle all error interrupts from the CCR's.

3. FUNCTIONS: Module F37 performs the following functions:

a. Provides reroute and reset and ignore maniac functions on the CCR error sense lines.

b. Provides fault/error isolation and CCR/MKR isolation.

c. Takes appropriate recovery steps to achieve a workable subsystem. 4. INPUTS 4.1 SOFTWARE 4.1.1 Core Tables

Fcc - cm-rj identity.

Fjp - executive Junk Storage.

Fwa - executive Interface Work Area.

Fwc - tm receiver Information.

Swb - ccr dump Area B.

Swe - ccr dump Area E.

4.1.2 drum Tables

None

4.1.3 Registers

None

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Erg - pseudo Registers.

Fjp - executive Junk Storage.

F38x03: schedule error program.

F38x04: abort Job.

I00: maintenance Interrupt Access.

I01: configuration Control.

I20: elt, diarqt, diabrt.

i50: extra Lines for L00.

S31x01: ccx errors Check.

8. NARRATIVE

8.1 discussion

after checking maniacs on the interrupting device, module F37 then proceeds to determine the cause of the interrupt. If the interrupt occurs during a CCR to CCR transfer, F37 will ignore the interrupt and return to ICAP. If the interrupt occurs during a maintenance request, F37 will schedule the user's error program with FWAEIO = 12 after providing a CCR status word dump in FWC and then reset and ignore the error. If a transmission error interrupt occurs during an origination or termination, F37 will immediately retry the I/O operation, either by calling F32X05 to send data out again if error was in sending or by backing up scanner one marker and allowing CCR to receive data again. If the retry is successful, the ready interrupt will be rerouted through F37X03 and counter. If the transient error rate exceeds 1%, CCR Isolation is requested on the device. If the retry is unsuccessful, we have found a fault, and fault/error isolation is complete. F37 will proceed to CCR/MKR isolation stage. If a timeout error occurs at any time during call processing I/O, F37 will call CCR Isolation immediately. If an error occurs with a MOS marker, F37 will set the disable receiving errors latch in the active CCR to prevent constantly receiving error interrupts.

Upon entry to the CCR/MKR isolation stage, F37 will attempt to switch the active CCR by requesting that the active CCR be placed MOS. If the request is denied because the other CCR is not available, F37 will set the disable receive errors latch in the CCR and reset and ignore the error. If the reconfiguration request is allowed, F37 can then do more retry to accomplish CCR/MKR isolation. If the retry is successful, F37X03 again receives control via a reroute of the ready interrupt and will assume that the original CCR is fault and will request, through DIACON, that CCR Isolation be run on that CCR. If the retry is unsuccessful, F37 will assume the marker fault, and will request that CCR/MCR Isolation be run on the original CCR and the faulty CCR after putting the marker MCS.

When F37 has completed its isolation, it will call F32X01 to scan the I/O queues and then return to ICAP.

F38 - figs. 62 - 62c

1. name: f38 - ccr i/o handler Subroutines - 2

2. PURPOSE: F38 contains six subroutines used by other programs associated with CCR and marker hardware.

3. FUNCTIONS:

a. F38X01 handles the interface between the I/O programs and the non-I/O executive in regards to scheduling the user's next program after successfull completion of I/O request.

b. F38X03 handles the interface between the I/O programs and the non-I/O executive in regards to scheduling the user's error program after unsuccessful completion of the I/O request.

c. F38X02 provides interface between the I/O Handler Timeout Audit Program and the CCR I/O Handler for CCR timeouts.

d. F38X05 provides interface between the I/O Handler for terminating marker timeouts.

e. F38X04 attempts to find and abort an I/O request associated with a particular CCR scan address.

f. F38X07 provides interface between terminating marker isolation programs and the I/O handler when isolation is completed. This entry line will schedule either the next program or error program of the termination request depending on a indicator passed by calling program.

4. INPUTS

4.1 software

4.1.1 core Tables

Est - priority State Table.

Fcc - om-rj identity Table.

Fhp - hitching Post Table.

Fjp - interrupt level junk Table.

Fwa - executive Work Area Table.

Has - mcr audit Table.

4.1.2 Drum Tables

None

4.1.3 Registers

X1 - work Area Address.

X2 - scan Address of Marker.

Ra - schedule Error or Next Program.

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Eps - executive Parameter Storage Table.

Esl - executive Storage Location Table.

Est - priority State Table.

Fhp - hitching Post Table.

Fwa - executive Work Area Table.

Has - mcr audit Table.

5.1.2 Drum Tables

None

5.1.3 Registers

X1 - work Area Address.

X2 - scan Address of Marker.

Ra error Indicator.

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F38x01: entered to call the Executive Audit Program for CCR timeouts.

F38x03: entered to call the Executive to schedule the user's error program.

F38x04: entered to find and abort an I/O request associated with a particular scan address.

F38x05: entered for terminating marker timeouts.

F38x06: entered to provide interface between terminating marker isolation programs and CCR I/O handler when isolation is complete.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

None: Control is always returned to the calling program.

7. SUBROUTINES USED

Entry: Functional Names

Points

F02x02: link to front of queue.

E01x01: schedule program and return control.

F05x01: return work area to system pool.

F36x01: set marker MOS and just ignore.

L20x01: schedule marker maintenance.

F32x01: scan CCR I/O queues.

8. NARRATIVE

8.1 discussion

f38x01 and F38X03 provide implementation of the "hold NRA" option and the "drop work area" option in field FWAPGT of the I/O request.

F38X02 and F38X05 provide interface between I/O Handler Timeout Audit (IOHTOA) and I/O Handler. F38X02 will call F32X07 to put the CCR MOS and Call CCRISO. F38X05 will call CONFIG to put the TM MOS, make a DIARQT for MRK routining, set unit just ignore maniac on the marker, and abort any request in progress via a call to F38X04, and schedule the user's error program with FWAEIO = 9. Both F38X02 and F38X05 will drive F38X02 to scan the I/O queues and then return to the calling program.

F38X04 will abort any I/O request in progress on the CCR scan number it receives as input and return the requestor's work area address in index register one.

F38X07 will reset the hitched work area bit (FHPJHT) passed by marker isolation and scheduler either the next program or the error program (with FWAEIO = 8) of the request that was hitched to the special hitching post.

8.2 TECHNIQUE

Not applicable.

Notes to FIG. 62

Inputs: xr1 = work Area Address of Program to schedule.

Notes to FIG. 62C

This routine to reset TM H.P. after MKR fault and schedule hitched program.

Inputs: ra = 0 indicates schedule next program.

Ra .noteq. 0 indicates schedule error program.

X1 = waa -- will be saved.

X2 = scan address -- will be saved.

Outputs: ra = 0 indicates no error found.

Ra = -1 indicates error was found.

Error conditions:

1. Invalid SCA (not in range) SCA 14)

2. job not hitched at spare HP. RJ and ERG001 - 004 are destroyed.

F39 - fig. 63

1. name: f39 - ccr load/Unload Subroutine.

2. PURPOSE: This module performs certain I/O functions for S45, CCR Link Localization. It is provided to minimize interface requirements for that program.

3. FUNCTIONS:

a. Loads CCR standard status word from input.

b. Unloads CCR status words upon request.

c. Checks for CCX errors.

d. Returns to calling program.

4. INPUTS

4.1 software

4.1.1. core Tables

Rsa - computer communications Register Maintenance Table.

4.1.2 Drum Tables

None

4.1.3 Registers

X2 - channel Controller Number (06000 or 07000).

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Sra - ccr maintenance Table.

5.1.2 Drum Tables

None

5.1.3 Registers

Rq - error Indicator

0 = No error

Negative = Error in loading CCR.

5.2 hardware

ccr scanner Address Loaded.

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F39x01: entered to load CCR scanner for link localization only.

F39x02: entered to give CCR error status dumps for link localization only.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

None: Control is always returned to the calling program.

7. SUBROUTINES USED

Entry: Functional Names

Points

S31x01: ccx recovery to check for channel multiplex errors.

F36x06: to dump 4 status words.

8. NARRATIVE

8.1 discussion

f39x01 loads input word into CCR standard status word and then calls S31X01 to check for possible CCX errors. The module will do retries if requested by S31X01. When standard status word has been successfully loaded, F39 will return to S45 with a no error indication. If CCX errors are encountered, F39 will return with indication that errors occurred.

F39X02 formats interface information and the calls F36X06 to obtain a status dump of the CCR. F39X02 then returns error indication from F36X06 to S45.

8.2 technique

not applicable.

F40 - figs. 64 - 641

1. name: f40 - drum Handler Subroutines I

2. purpose: provides required interface with the Manipulator and DMS Isolation for scheduling a user's next or error program.

3. FUNCTIONS:

a. Schedules the next program.

b. Schedules an error program with a specified error code.

4. INPUTS

4.1 software

4.1.1 core Tables

Fwa - user's Work Area

4.1.2 Drum Tables

none

4.1.3 Registers

Rq - error Code.

Xr2 - negative, indicating caller identity.

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

None

5.1.2 Drum Tables

None

5.1.3 Registers

None

5.2 HARDWARE

None

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F40x: called by Manipulator and DMS Isolation to schedule a user's next or error program.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

None: Return is always made to the caller.

7. SUBROUTINES USED

Entry: Functional Names

Points

F30a07: utilized to schedule the user's next program.

F30a03: utilized to schedule the user's error program.

8. NARRATIVE

8.1 discussion

occasionally, the Manipulator and DMS Isolation will schedule a user's next or error program as part of its processing. In order to take advantage of the Drum Handler's program scheduling capability (including work area release, non-resident area control, state indicator control, etc.), a special entry line has been provided for use by the Manipulator and DMS Isolation for this purpose.

8.2 TECHNIQUE

Module F40 exists solely to satisfy interface agreements with the Manipulator and DMS Isolation. While these programs may call entry lines F40X04 or F40X06 (per original agreement), entry actually occurs at F40X (or F40X01) due to F40's special PIT (i.e., no indexing by XR3). F40 determines which entry time is being accessed (by the value in XR3), calls F30A03 or F30A07 to perform the required program scheduling and returns control to the caller. Interface requirements specify that calls to F40 be executed with interrupts disabled (to eliminate re-entrancy problems associated with F30). When calling F40X06 to schedule the next program, XR2 must be negative (to identify the caller of F30A07 as Manip, since minor processing differences are associated with the Manip Call). When F40X04 is called to schedule an error program, RQ must contain the EIO field (error code) with which the error program is to be scheduled.

F41 - figs. 65 - 65c

1. name: f41 - drum Handler Subroutines II

2. purpose: provides required interface with DMS Isolation for clearing down a specified DCU and its associated software indicators, and an interface to allow DMS Isolation to initiate a DCU queue scan (to ensure all queued jobs are found).

3. FUNCTIONS:

a. Clears the DCU and places it in an idle state.

b. Clears any software indicators associated with that DCU.

c. Initiates a DCU queue scan, when instructed to by DMS Isolation.

4. INPUTS

4.1 software

4.1.1 core Tables

Fjp - interrupt Level Junk Storage.

4.1.2 Drum Tables

None

4.1.3 Registers

None

4.2 HARDWARE

None

5. OUTPUTS

5.1 software

5.1.1 core Tables

Fdp - drum Parameters Table.

Fhp - hitching Post Table.

5.1.2 Drum Tables

None

5.1.3 Registers

None

5.2 HARDWARE

Dcu in a clear, idle state.

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F41x: called by DMS Isolation to clear down a specified DCU or initiate a queue scan on a DCU pair.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

None: Return is always made to the caller.

7. SUBROUTINES USED

Entry: Functional Names

Points

F30a10: called to clear down the DCU and its associated software indicators.

F30a0z called to initiate a DCU queue scan.

8. NARRATIVE

8.1 discussion

during the process of isolating a fault on a DCU pair and after two retries on the error unit, the job may be tried on the mate unit. It is therefore necessary to clear the error unit (should it be placed back in service). DMS Isolation therefore makes use of an existing Drum Handler subroutine to accomplish this task. Such an arrangement enforces accurate and efficient control of the DCU as a resource.

The queue scan entry is needed to ensure jobs queued on a DCU-pair basis get started again after DMS isolation is finished. Without this entry, a job queue would not get serviced again after isolation, because queue scan is normally started only on an interrupt basis, and no interrupts would come in on a DCU pair shut down for isolation purposes.

8.2 TECHNIQUE

Module F31 exists solely to satisfy an interface agreement with DMS Isolation. While Isolation calls entry line F41X02 (per original agreement), entry actually occurs at F41X (or F41X01) due to F41's special PLT (i.e., no indexing is XR3).

F41 immediately calls F30A10 to accomplish the necessary clearing of the DCU and its associated software, and returns control to DMS Isolation. Interface requirements specify that FJPB22 contain the identity of the DCU to be cleared.

When DMS Isolation enters F41 calling for F41X01, F41 immediately calls F30A02 to initiate a queue scan on the SCU pair indicated by X2 and returns control to DMS Isolation.

F52 - figs. 67 - 67a

1. name: f52 - marker Malfunction Interrupt Handler.

2. PURPOSE: The purpose of module F52 is to enable approprate handling of malfunction interrupts from both originating markers and terminating markers.

3. FUNCTIONS: Module F52 performs the following functions:

a. Appropriately handles MANIAC conditions on the interrupts associated with marker malfunction sense lines; see paragraphs 8.1(b) and (c).

b. Interfaces with maintenance diagnostic programs when malfunction interrupts occur during the accessing of a marker by a normal (non-maintenance) Call Processing client of F31.

c. Provides an indication of interrup (assoicated with a marker malfunction sense line) who is performing maintenance on a marker. In the event of this marker interrupt:

1. F52 Terminates the program and returns control back to the F31 client (originating diagnostic program).

2. Cleans up the hardware and software for the requester: That is, resets the malfunction sense line, and resets software indicators so that other F31 clients may be properly acted on.

d. Attempts to initiate the next I/O request from F31, if such a request is queued.

e. Returns to the calling program.

4. INPUTS

4.1 software

4.1.1 core Tables

Esl - executive Storage Location. (Also an output table.)

Fcc - ccr control Table. (Also an output table.)

Fhp - hitching Post. (Also an output table).

Fjp - interrupt Level Junk.

Fwa - executive Interface Work Area. (Also an output table.)

4.1.2 Drum Tables

None.

4.1.3 Registers

None.

4.2 HARDWARE

None.

5. OUTPUTS

5.1 software

5.1.1 core Tables

Esl - executive Storage Location. (Also an input table).

Fcc - ccr control Table. (Also an input table.)

Fhp - hitching Post. (Also an input table.)

Fwa - executive Interface Work Area. (Also an input table.)

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

6. CONTROL

6.1 entry points

entry: Reasons for Entry

Points

F52x01: see Purpose paragraph 2.0, above.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

Calling Program: Return to calling program.

7. SUBROUTINES USED

Entry: Functional Names

Points

F32: ccr handler.

F34: originating Market Standby Interrupt Handler.

F36: ccr subroutines.

F38: ccr scheduler B and Aborts.

L00: maniac - maintenance Interrupt Access.

L01: config - configuration Control Program.

L20: diacon - diagnostic Control Program.

L50: unit MANIAC.

K70: omrjcl - originating Marker RJ Clear.

8. NARRATIVE

8.1 discussion

the following is a summary of the major (flowchart) decisions and actions performed by F52; see the F52 flowchart for the exact detailed flow, not indicated here.

F52 first major action is to check the MANIAC passed by the Interrupt Cause and Analysis Program (ICAP); this indicator is the Reset-and-Ignore condition. One out of three major categories of action is then performed by F52 (primarily dependent on the 1 or 0 state of the Reset-and-Ignore indicator); the three possibliites which possibilities F52 can perform are listed below under (a), (b), and (c). Listed under these three major categories are several subdivisions that are the additional necessary (or possible) decisions comprising that area of the program; it must be remembered, however, that the material below is only a general overview of the major program decisions.

a. When Reset and Ignore is not set, then:

Closed subroutine F36X02 is called if reroute is set, and only if reroute is set. Then, whether reroute is set or not, a check is always made to see if the malfunction is associated with a diagnostic request concerning the marker:

1. If the malfunction is associated with a diagnostic request on the marker (FCCMJI = 1), then closed subroutine F34X05 is called to clean up the request and schedule the clients next program. In addition, if test call mode is used, F52 performs the operation listed under the second paragraph of condition.

Or

2. if the malfunction is not associated with a diagnostic request on the marker (FCCMJI = 0), then control is passed to closed subroutine F38X04 so that if the I/O request is in progress (the job being a termination attempt by the TM), it may be aborted. If the request is in progress, then in addition to the job being aborted, the work area will be hitched to a special hitching post, unless that hitching post is busy, in which case the user's error program is scheduled with FWAEIO = 8.

Next, the interupting marker is placed MOS (via a call to CONFIG). A unit Just-Ignore MANIAC is then put on the interrupting marker, a DIARQT for marker isolation is made, and the Reset and Ignore malfunction MANIAC is put on the other marker pair. Then F32X01 is called to scan the I/O queues, after which control is returned to ICAP.

b. When Reset-and-Ignore is set, and an I/O request is in progress with the marker, then:

If the maintenance request is not waiting for standby (see page 1 of flowchart), then: The client requested error program is scheduled with FWAEIO = 8. Otherwise, if the maintenance request is waiting for standby, then: The I/O request is a diagnostic program for an OM, the (replacement) marker is not yet employed by the diagnostic program, and at this time an unrelated malfunction indication occurs in connection with the marker (maintenance request not waiting for standby). This malfunction indication, however, is ignored and the marker is still employed by the diagnostic program; that is, F52 still continues processing as if the marker malfunction was not indicated.

Next, whether the maintenance request is or is not waiting for standby, the Reset and Ignore Override indicator (FWARIO) is checked:

1. If FWARIO is set, the malfunction interrupt sense line will be reset. Then, F32X01 is called to scan the I/O queues, and then control is returned ICAP.

Or

2. if FWARIO is not set, the marker is reset and a on-line transmission is sent to the marker. Then, F32X01 is called to scan the I/O queue, and then control is returned to ICAP.

c. When Reset-and-Ignore is set, and an I/O request is not n progress with the marker, then:

K70x01 is called to check if RJ (Register Junctor) needs to be cleared. An on-line transmission is sent to the marker. Then F32X01 is called to scan the I/O queues, and control is then returned to ICAP.

Executive -- maintenance modules

the following software module descriptions relate to programs for executive control and scheduling of maintenance programs. They relate to DIACON, MANIAC, and CONFIG.

L00

L00-1. name

l00 - maintenance Interrupt Access Program.

L00-2. purpose

the purpose of this module is to set or reset maniac conditions on an individual sense line or on all sense lines associated with a subsystem.

L00-3. functions

module L00 performs the following functions:

a. Sets/Resets a just ignore condition on any sense line.

b. Sets/Resets a reset and ignore condition on any sense line.

c. Sets/Resets a reset and ignore once condition on any sense line.

d. Sets just ignore all sense lines associated with a specified subsystem (Unit Maniac).

e. Resets any maniac condition which is present on the specified subsystem.

L00-4. inputs

4.1 software

4.1.1 core Tables

Hav - vector Points to HAW.

Haw - unit Maniac list all sense line to be JI.

Hbl - branch Field Loader.

Hmn - maniac Table Entry.

4.1.2 Drum Tables - None.

4.1.3 Registers - None.

4.2 HARDWARE - None.

L00-5. outputs

5.1 software 5.1.1 core Tables

Hmn - maniac Table Entry.

Hrr - maniac Reroute TBL.

5.1.2 drum Tables - None.

5.1.3 Registers - None.

5.2 HARDWARE - None.

L00-6. control

6.1 entry points

entry Points: Reasons for Entry

L50x01: rstman will cause any Maniac request on all interrupt sense lines associated with a particular device to be removed.

L50x02: setman will cause all interrupt sense lines associated with a particular device to be set to Just Ignore.

L00x05: manset rr and MANRST RR. The setting and resetting of NEW reroute request.

L00x06: the Removal of MANSET RR and MANRST RR.

L00x04: set Maniac to Just Ignore (MANSET JI).

L00x03: reset and Ignore once (MANSET RO).

L00x02: reset and Ignore Maniac (MANSET RI).

L00x01: reset JI/RI/RO Maniac Requests (MANSET JI/RI).

6.2 exit points

exit Points: Reasons for Exit

None: Return is made to client.

L00-7. subroutines used

entry Points: Functional Names

L00x01: rest of JI (Just Ignore)/(reset and ignore once) Maniac Request.

L00x02: reset and ignore indicator.

L00x03: reset and ignore once indicator.

L00x04: set Maniac to Just Ignore.

L00x05: setting and resetting of new reroute request.

L00x06: removal of MANSET RR and MANRST RR.

L00-8. narrative

8.1 discussion

the function of this module is to set or reset any of the possible maniac conditions on a given sense line. The four possible maniac conditions are:

1. Just Ignore.

2. Reset and Ignore.

3. Reset and Ignore Once.

4. Reroute.

This module also provides for the setting of all sense lines in a given subsystem to a just ignore state which would be used when removing a unit from service. There is also a provision for resetting all maniac condition which exists on aa given subsystem.

8.2 TECHNIQUE

A unique entry line is provided for each function of the Maniac program. A total of nine entry lines are provided. Module L50 is used to provide additional entry lines for module L00. The first four entry lines of this module perform very similar functions and therefore utilize common code. The four functions are to set just ignore, to set reset and ignore, to set reset and ignore once and to reset all maniac conditions on a given sense line. Table HMN is indexed by the sense line number and the appropriate indicators are set or reset.

The next two entry lines set and reset the reroute conditions on a given sense line. For each reroute, two words of data are stored in table HRR. An index into table HRR is stored in table HMN and the 23rd bit is set to indicate that a reroute is present on the sense line. If table HRR is full, the error return is used.

If the reroute is to be reset, the associated word in table HMN is extracted. The reroute index is removed and used to clear the appropriate data words in table HRR. Finally the reroute data is cleared in table HMN for the sense line specified.

The next two entry lines set and reset the unit maniacs for an entire device. That is, all maniacs on the device are reset or a just ignore is set on all sense lines associated with a device.

The unit number passed by the caller is used to index table HAV which is a pointer to table HAW. Table HAW contains all information necessary to perform the unit maniac. This includes the number of sense lines, the maximum unit index and a list of the sense lines.

Unit maniacs for all subsystem are handled the same except for Markers. Register Senders and Device Buffers. Markers are unique because all fourteen Markers can be referenced relative to their individual type. The Device Buffers are unique because the sense lines associated with the B units are eight sense lines away from the A unit rather than being adjacent as in most subsystems. Register Senders are unique because two sense lines on the mate of the requested unit must also be set to just ignored on a Maniac request.

L01c

l01c-1. name

register Sender (RS) and Common Logic Unit (CLU) Reconfiguration Program.

L01c-2. purpose

this program provides the configuration change capability for the RS and the CLU's.

L01c-3 functions

program L01C configures the interface of the RS Computer Central Processor (CCP) on the basis of three types of requests: (1) System Status Table configuration requests: (2) Calling Program instructions; or (3) following a third-party trap.

The reconfiguration requests available through L01C consist of:

a. Placing a particular RS-CLU in a Maintenance-Out-of-Service (MOS) condition, and reconfiguring the interface.

b. Switching the RS-CLU configuration.

c. Placing the RS-CLU in a crosswrite configuration.

d. Placing the RS-CLU in an In-Service condition.

e. Providing the capability to place an RS temporarily not usable in fault isolation status.

L01c-4. inputs

4.1 software

4.1.1 core Tables

Hst - system Status Table.

4.1.2 Drum Tables - None.

4.1.3 Registers

Rq - tty initiate Indicator.

X3 - client address identification.

X2 - rs-clu identification.

Register X2 may have values of 0 through 3, thereby identifying one of the two CLU's associated with RS1 or RS2, as follows:

X2 = 0 indicates RS1A; X2 = 1 indicates RS1B; X2 = 2 indicates RS2A; and X2 = 3 indicates RS2B.

4.2 hardware - none.

L01c-5. outputs

5.1 software

5.1.1 core Tables

Hst - system Status Table.

5.1.2 Drum Tables - None.

5.1.3 Registers

Ra - status of the request.

If RA is equal to 0, the request is completed without error; if RA is not equal to 0, the request is rejected.

5.2 HARDWARE - None.

L01c-6. control

6.1 entry points

entry Points Reasons for Entry

L01c01: to configure the RS-CCP interface via the Systems Status Table.

L01c02: to configure the RS-CCP interface as specified by the calling program.

L01c03: to configure the RS-CCP interface after a third-party trap.

L01c10: to verify the RS-CCP interface.

L01c11: see L01C10.

L01c20: to place an RS-CLU MOS and configure the RS-CCP interface.

L01c21: to place the MOS-CLU In-Service, and to place the In-Service CLU MOS.

L01c22: to reset the MOS condition on an RS-CLU and to configure the RS-CCP interface.

L01c23: see L01C22.

L01c24: to set an RS temporarily not usable.

L01c25: to place In-Service an RS set temporarily not usable through L01C24.

L01c26: to configure temporarily the RS-CLU interface.

L01c27: to reset the temporary RS-CLU configuration effected through L01C26.

6.2 exit points

exit Points: Reasons for Exit

Exit from all the L01C entries is to the caller's return address, as specified in Index Register 3.

L01c-7. subroutines used

entry Points: Functional Names

Special Entry Point: L11 - Register Save program.

Special Entry Point: L12 - Register Restore program.

L30x03: l03 - configuration Control Utility program.

8. NARRATIVE

8.1 discussion

the program configures the RS-CCP interface through entry points L01C01, L01C02, and L01C03. The status of both the Processor Configuration Group (PCG) and the RS is determined by the entry point; i.e., L01C01 indicates a request originating in the HST Table, L01C02 identifies a user request, and L01C03 identifies a request transmitted on sense lines.

The program sets Select Latches in the CLU, thereby effecting the required RS-CCP configuration.

The program verifies the RS-CCP interface through entry points L01C10 and L01C11. The sense line status showing the CCP Receive mode and the RS Select status is compared with the desired status, as determined by the Systems Status Table; if a discrepancy exists, an error return is passed to the user program.

Entry point L01C20 is used to place an RS-CLU in a MOS condition and to configure the RS-CCP interface. If the alternate CLU is MOS, the request is rejected. Otherwise, the CLU is set MOS and Remove message is issued, if the CLU is not already MOS. The RS-CCP interface is then reconfigured via entry point L01C01, verified via L01C11, and finally, the unit is set MANIAC Just Ignore for the MOS CLU via Subroutine L03.

The MOS CLU In-Service and the In-Service CLU MOS are switched through entry point L01C21. The request is rejected if the MOS on one CLU is not set, or if one of the flags SWT, MCC, or OS is set. The MOS CLU is placed In-Service via entry point L01C23, and the In-Service CLU is placed MOS via entry point L01C20. After the switch has occurred, the SWT flag is set.

An RS-CLU is placed is crosswrite via L01C22. The request is rejected either if one CLU is not MOS, or if the TEM flag is not set. Prior to client return, the on-line CCP is configured to write into both CLU's of an RS.

The program places an MOS CLU In-Service through L01C23. The request is rejected if the MCC override is set, or if the CLU is Out-of-Service (OS). The MOS status bit is reset and a Restore message is output to the TTY if the unit is found MOS. The RS-CCP interface is then configured via L01C01, then verified via L01C11, and finally, the CLU unit is reset MANIAC Just Ignore via Subroutine L03.

An RS may be placed in a temporarily not usable condition via L01C24 by setting the TEM flag and initiating a timer which indicates a System Clear and Start condition if the flag is not reset in two minutes.

Entry point L01C25 is used to reset the temporary condition and disable the timer set by L01C24.

The program temporarily configures the RS-CLU interface via L01C26. The request is rejected if either CLU is OS. The interface is configured with user-supplied status via L01C02, and verified via L01C10. The temporary flag is then set via L01C24.

The temporary configuration set in L01C26 is reset via L01C27. If both CLU's are OS, the request is rejected. The interface is reconfigured via L01C01 and verified via L01C11. The temporary condition is then reset via L01C25.

Entry points L01C30 and L01C31 are internally entered routines used to format Remove and Restore Reconfiguration (RC) messages for RS-CLU's.

8.2 TECHNIQUE

The functions performed by L01C are entered by user programs through entry points and returned via L01A.

L01d

1. name

l01d - register Sender Multiplex Reconfiguration Program

L01d-2. purpose

this module configures the RSM through the L01X04 Configuration Control Interface.

L01d-3. functions

module L01D performs the following functions:

a. Configures RSM according to common logic unit status.

b. Exercises Register Sender pulse and latch control.

L01d-4. inputs

4.1 software

4.1.1 core Tables

Hst - system Status Table.

4.1.2 Drum Tables - None.

4.1.3 Registers

L01d01:

x2 - register Sender Section Identity (0-1).

L01d02:

x2 - rs-clu identity (0-3).

Ra - pulses sent exactly as to be written into RS Memory.

L01d03/4:

x2 - rs-clu identity (0-3)

Ra - group busy bits to be set/reset.

Bit 0 set - Group 0/4

Bit 1 set - Group l/5

Bit 2 Set - Group 2/6

Bit 3 Set - Group 3/7

L01d05/6:

x2 - register Sender section identity (0-1).

Ra - register Junctor Identity (0-191).

L01d07/8/30:

x2 - register Sender CLU Identity.

0 - RS1A

1 - rs1b

2 - rs2a

3 - rs2b

4 - rs1 both CLU's

5 - RS2 both CLU's

Ra - the Pulse/Latch word to be written into RS Memory.

L01d10:

x1 - clu indentity.

0 = A

1 = b

2 = both A and B

X2 - register Sender Section Identity (0-3).

Ra - word to be written into RS Memory.

4.2 HARDWARE - None.

L01d-5. outputs

5.1 software

5.1.1 core Tables

Hst - systems Status Table.

5.1.2 Drum Tables - None.

5.1.3 Register

Ra - status of the request.

5.2 HARDWARE

The Register Sender is exercised via pulse and latch control.

L01d-6. control

6.1 entry points

entry Points: Reasons for Entry

L01d01: configures the RSM according to CLU MOS status.

L01d02: configures the RSM enable for a specified CLU.

L01d03/4: sets and resets the RS Group Busy.

L01d05/6: sets and resets the RJ Maintenance Busy Bity.

L01d07: writes pulse words into RS Memory.

L01d08: writes Latch Words into RS Memory.

L01d30: writes user- upplied Latch Words into RS Memory.

6.2 EXIT POINTS

Exit Points: Reasons for Exit

Exit for all entries into L01D is effected thru the return address passed on entry in X3.

L01d-7. subroutines used

entry Points: Functional Names

L01c: configures the RS-CLU per status in HST.

L03: configuration utility subroutines.

F01: schedules access to RS Memory.

L01d-8. narrative 8.1 discussion

l01d01 - configures the Register Sender Multiplex (RSM) according to the CLU status in HST.

1. check RS-CLU MOS status; specify in-service CLU's and update pulse control word.

2. Configure CLU RSM interface aacording to CLU MOS states.

3. Write into the in service CLU's Pulse and Latch words.

L01d02 - configures the Multiplex enable for a specified CLU.

1. if specified CLU is MOS, reject request.

2. Write pulse word and update pulse control word as specified by user.

L01d03/4 - sets (resets) group busy by setting (resetting) appropriate latch in RS Memory.

1. The request is rejected if associated CLU is MOS.

2. the latch word is written into RS Memory and the table is updated.

3. A TTY message is added to the list.

L01d05/6 - sets (resets) the Register Junctor (RJ) maintenance busy bit.

1. Update the RJ maintenance busy bit for specified RJ in HST.

2. if state of bit changed, TTY message is added to list (remove or restore).

L01d07 - write pulse words.

1. Clear any multiplex enable bits.

2. Set up parameters and write pulse word via L01D10.

L01d08 - write latch word.

1. Sets RS Multiplex and RJ busy bits per HST.

2. set up parameters and write latch word via L01D20.

L01d10 - writes into RS Memory and executes desired CPD for desired pulse and latch control. No checks are made; only error condition arises when RS time is unable to access RS Memory. In this case, an error return is made to user program.

L01d20 - formats latch requests handled by L01D10.

L01d30 - formats latch requests handled by L01D10 in which a user-supplied latch word, without formatting, is written into RS Memory.

8.2 TECHNIQUE

The functions performed by L01C are entered by user programs Through entry points and returned via L01A.

L01f

1. name

l01f - drum Memory System Reconfiguration Program.

2. PURPOSE

This program provides the configuration change capability for the Drum Memory System (DMS).

L01f-3. functions

the following functions are performed by Module L26:

a. Remove a drum from usage in case of faults or for routining purposes.

b. Restore a repaired drum to usage by the system.

c. Configure the Drum Memory System Computer Processor Group (CPG) interface.

L01f-4. inputs

4.1 software

4.1.1 core Tables

Hst - system Status Table.

4.1.2 Drum Tables - None.

4.1.3 Registers

X2 - drum Memory System Identity (0 to 5).

X3 - return Address.

4.2 HARDWARE

L01f-5. outputs

5.1 software

5.1.1 core Tables

Hst - system Status Table.

5.1.2 Drum Tables

None.

5.1.3 Registers

Register A gives the status of the return: if RA equals 0, the return is completed; if RA is not equal to 0, the return is rejected.

5.4 HARDWARE

The DMS is exercised by the reconfiguration subroutines via Control Pulse Directive (CPD) instructions.

L01f-6. control

6.1 entry points

entry: Reasons for Entry

Points:

L01p01: to place a DMS pair in a temporary Maintenance-Out-of-Service (MOS) condition for isolation purposes.

L01f02: to reset the temporary condition set in L01F01.

L01f03: to reset the condition set in L01F01, then places the specified drum MOS.

L01f04: to place a specified drum MOS.

L01f05: to place a drum hardware unit off-line.

L01f06: to place a drum hardware unit on-line.

L01f07: to place a drum in-service and Available for Transient Writes (ATW).

L01f08: to make a drum unavailable for transient writes.

L01f09: to configure a Drum Control Unit (DCU) to an off-line Computer Central Processor (CCP).

L01f10: to configure a DCU to an on-line CCP.

6.2: exit points

upon completion of each configuration request, control is returned to the requestor, via the return address, to L01X04 passed in X3.

L01f-7. subroutines used

entry: Functional Names

Points

L03x03: l03 - configuration Utility Program

L03x04

l03x05

l03x06

l03x07

l01f-8. narrative

8.1 discussion

when L01F01 is entered, the program places a drum pair in temporary MOS Maintenance Busy (MB) condition for fault isolation purposes. If either drum is MOS, the request is rejected. Otherwise, the pair is set MOS and MB, and a two-minute timer is initiated via subroutine L03.

The program enters L01F03 to reset the MOS and MB condition set in L01F01, and to leave a specified drum OS. The effect of scheduling this entry point is to reset the temporary condition via L01F02, and to place the specified drum MOS via L01F04.

When L01F04 is entered to place a specified drum MOS, the program rejects the request if the alternate drum is MOS, or if either of the two drums is ATW. If the drum is not already MOS, it is set MOS and a TTY REMOVE message is added.

Entry point L01F05 causes a specified drum hardware unit to be placed off-line. If the drum is not MOS, the requests if rejected. If the drum is MOS, it is set off-line and cleared via CPD instructions. The program then verifies the drum's off-line status via sense lines, then sets the unit to a MANIAC Just Ignore status for the specified drum.

Entry point L01F06 is used to place a specified drum hardware unit on-line. The program rejects the request if the drum is OS. However, if the drum is not OS, it is placed on-line via CPD instructions. If RESYNC is in progress in the CPG, the prograam sets the CCP Port On-Line Register (POLR) off-line. Finally, the program verifies that the drum is on-line and returns with an error message if the drum is off-line.

At entry point L01F07, the prograam resets the MOS state; i.e., places the drum in-service. The request is rejected if a Maintenance and Control Center (MCC) override is in effect. If the drum is MOS, the prograam resets the MOS state, sets the ATW state, and adds a RESTORE message. Finally, it resets the unit MANIAC for the drum.

Entry point L01F08 causes the program to reset the ATW state. If the drum is MOS, the request is rejected. If the drum is not MOS, the program resets the ATW state and the unit MANIAC.

At entry point L01F09, the program configures a DCU to an off-line CCP. If one PCG is not MOS, the request is rejected; similarly, if the drum is MOS or ATW, the request is also rejected. If the request is not rejected, the DCU is set off-line and MOS. Subsequently, the instructions contained in the Set Port Enable Test Register and the Set Port On-Line Register are executed in an off-line CCP.

When entry point L01F10 is entered, the program configures a DCU to an on-line CCP. If the Off-Line Flag (OFL) is not set, the request is rejected. If the OFL is set, the Port Enable Test Register is reset in the off-line CCP, and the Port On-Line Register is set in the on-line CCP.

8.2 technique

the functions performed by L01F are entered by user programs through the entry points and returned via L01A.

L09 1. name

l09 - manchk program.

L09-2. purpose

this program determines which Maniac condition is set on the requested sense line and passes the information back to the caller.

L09-3. functions.

module L09 performs the following functions:

a. Determines which Maniac condition is set and returns an indicator to the caller.

b. If a re-route is set, this module also returns the re-route data.

L09-4. inputs

4.1 software

4.1.1 core Tables

Erg - pseudo Register.

Hmn -maaniac Condition Table.

Hrr - maniac Status Table.

4.1.2 Drum Tables

None.

4.1.3 Registers

None.

4.2 HARDWARE

None.

L09-5 outputs

5.1 software

5.1.1 core Tables

Erg - pseudo Register.

Hmn - maniac Condition Table.

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

L09-6. control

6.1 entry points

entry: Reasons for Entry

Points

L09x: to set Maniac condition.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

None: Return.

L09-7. subroutines used

none.

L09-8. narrative

8.1 discussion

this module checks the maniac condition present on the requested sense line and passes an indicator back to the caller. Interface to the module is via the MANCHK macro. This module never receives control unless a maniac condition has detected by the MANCHK macro.

If a re-route is present on the requested sense line, the re-route data is passed back to the caller. If a reset and ignor once condition exists on the sense line, a reset condition is cleared in table HMN. If a just ignore or a reset and ignore is set on the sense line, the approprate indicator is passed to the caller.

L11

1. name

l11 - register Save Routine / L12 - Register Restore Routine.

L11-2. purpose

provides re-entrable, the capability to save multiple sets of registers in the Base, Interrupt and Trap modes for Common Maintenance Programs.

L11-3. functions

modules L11 and L12 perform the following functions: Save and restore registers RQ, X1, X2, ERG001, ERG002, ERG003 and ERG004.

L11-4. inputs

4.1 software

4.1.1 core Tables HRP - Return Address Pointer.

4.1.2 Drum Tables None.

4.1.3 Register RA - The Return Address.

4.2 HARDWARE

None.

L11-5. outputs

5.1 software

5.1.1 core Tables HRP - Return Address Pointer.

5.1.2 Drum Tables None.

5.1.3 Registers None.

5.2 HARDWARE

None.

L11-6. control

6.1 entry points

entry: Reasons for Entry

Points

L11x01: branched to directly to save registers.

L12x01: branched to directly to restore registers.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

Calling Program: For both L11 and L12, exit is to the address specified in the RA register.

L11-7. subroutines used

none.

L11-8. narrative

8.1 discussion

upon entry to L11 the Return Address Pointer (HRPRA1) is incremented by one and the contents of the RA is saved. The Last Register Stored Pointer (HPSRS1) is then incremented by one as each register is stored in turn. After all registers are saved, the Return Address Pointer is decremented by one prior to returning to the calling program.

Upon entry to L12 the Return Address Pointer is incremented by one and the contents of the RA is saved. The registers are loaded from the address specified in HPSRS1 which is decremented by one after each restore operation. The Return Address Pointer is decremented by one prior to the return to the calling program.

8.2 TECHNIQUE

According to this Trap and Interrupt Re-entrable Register Save/Restore technique, the registers must be restored in reverse order in which they have been saved. Thus, the latest set saved must be the first set restored.

L20a

1. name

l20a - diacon request Handler (DIARQT).

L20a-2. purpose

module L20A performs the initial analysis of each request to schedule a maintenance program presented to DIACON.

L20a-3. functions

program module L20A performs the following functions:

a. Accepts requests to schedule maintenance programs.

b. Determines the validity of the request (checks the range of the request type and job number.)

c. Determines the job type (Isolation, Unit Clear and Start, Localization, Repair Verification, Routining, or Special), and establishes job priority.

d. Sets up DIACON's tables for scheduling the client (sets the appropriate bit in Table HDJ; moves into Table HDD any data to be passed to the maintenance program to be scheduled).

e. Sets the level 0 DIAFLG bit in the Executive's job queue Table EDC) to indicate that DIACON has work to do.

f. Return any error indicators to the requesting program.

L20a-4. inputs

4.1 software

4.1.1 core Tables

Hdd - diadat table.

Hdj - diajob table.

Hdo - diagonal Ones Table.

Hdr - repeat Test Control Words.

Hdv - diavec table.

Hps - register Save Pointer.

4.1.2 Drum Tables

None.

4.1.3 Registers

RA - Contents depend on the entry point used. RA contains the return address of the calling program (L20X03), or the diagnostic request word (L20X01).

X1 - Contains the starting location in core for storage of data to be passed to the maintenance program to be scheduled.

X2 - Contains the identity of the unit upon which maintenance is to be performed.

Q - Contains the DIAGWD Word.

4.2 HARDWARE

None.

L20a-5. outputs

5.1 software

5.1.1 core Tables

Edc - diaflg table.

Hbl - branch Field Loader.

Hdd - diadat table.

Hdj - diajob table.

Hdr - repeat Test Control Words.

Hdt - diatab table.

Hjc - diacon executive Instruction.

Hps - register Save Pointer.

Hrp - return Address Pointer.

5.1.2 Drum Tables

None.

5.1.3 Registers

RA - Contains any result code or error indicator which is to be returned to the requesting program.

5.2 HARDWARE

None.

L20a-6. control

6.1 entry points

entry: Reasons for Entry

Points

L20x01: this entry point is used by a requesting program to input the device type, request type, source code, repeat code, and dump code as individual parameters. Source of request is the Interrupt processors.

L20x03: this entry point is used by a requesting program if the information contained in the request has been preformatted and stored in ERG001. Source of request is MAININ.

6.2 exit points

exit: Reasons for Exit

Points

Calling Program: Control is returned to the requesting program.

L20a-7. subroutines used

entry: Functional Names

Points

L11: re-Entrant Register Save. The first instruction encountered after entry into module L20A is a macro call to L11 (SAVERG). This sub-routine stores all registers for the requesting program.

L12: re-Entrant Register Restore. Before returning control to the requesting program, L12 is entered as a closed subroutine via macro call RESTRG. L12 restores all registers saved by L11.

L20a-8. narrative

8.1 discussion

l20a is a core-resident module which may be entered in either the Base mode or the Interrupt mode, and re-entered from the Trap mode. The module may be called by any application program which has determined that a maintenance program controlled by DIACON should be run. L20A is entered as a closed subroutine.

Module L20A accepts the request to schedule a maintenance program and determines if the request is valid. If the request is not valid, an error indicator and program control are returned to the requesting program. If the request is valid, L20A determines the job type, performs DIACON users status checks to verify that the requested maintenance program can be run, and stores any data to be passed to the maintenance program. Before returning control to the requesting application program, module L20A sets the Executive's Level 0 DIAFLG bit, indicating that DIACON has work to do.

8.2 TECHNIQUE

Not applicable.

L20c

1. name

l20c - diacon abort Handler.

L20c-2. purpose

module L20C alerts maintenance programs which are currently running under control of DIACON that they should abort.

L20c-3. functions

program module L20C performs the following functions:

a. Receives the abort request.

b. Determines that the request is intended for the program that currently has control of DIACON and returns a verification message to the requesting program.

c. Sets the abort bit in word 0 (Control Word) of table HDT.

L20c-4. inputs

4.1 software

4.1.1 core Tables

Hdt - diatab table.

Hbl - branch Field Loader.

4.1.2 Drum Tables

None.

4.1.3 Registers

Ra -contains the return address of the requesting program.

4.2 HARDWARE

None.

L20c-5. outputs

5.1 software

5.1.1 core Tables

Hdt - diatab table.

5.1.2 Drum Tables

None.

5.1.3 Registers

Q - Contains a job verification message to be returned to the requesting program. (RQ = 0 indicates that the client designated in the abort request is not in control of DIACON; RQ = 1 indicates that the requested client has control of DIACON and the abort bit is set in the control word.

5.2 HARDWARE

None.

L20c-6. control

6.1 entry points

entry: Reasons for Entry

Points

L20x07: this entry line may be called by any application program which has determined that a maintenance program which has been requested should be aborted. Entry is made via the macro call DIABRT.

6.2 exit points

exit: reasons for Exit

Points

Calling Program: Program control is returned to the requesting program.

L20c-7. subroutines used

none.

L20c-8. narrative

8.1 discussion

l20c is a core-resident module which may be entered in either the Base mode or the Interrupt mode, and re-entered from the Trap mode. The module is entered as a closed subroutine.

The abort capability is used to inform a maintenance program in progress that a higher priority program has been requested, or that something has happended within the system which may have an adverse effect on the test results.

8.2 TECHNIQUE

Module L20C sets the abort bit (ABT) in Table HDT if the abort request received is for the maintenance program which currently has control of DIACON. Before a maintenance program running under control of DIACON takes any real-time breaks, it must check ABT.

If ABT is set, the maintenance program determines what action to take. Words 10 through 19 of Table HDT contain control data that effect a successful program abort. The program abort sequence includes re-setting the subsystem, releasing any work areas being used, re-scheduling the program being aborted, if possible, and taking any other actions peculiar to the program being aborted. Upon completion of the abort sequence control is returned to the Executive.

L21a

1. name

l21a - diacon diaflg handler Module.

L21a-2. purpose

l21a provides interface between the Executive's DIAFLG mechanism and program modules which use DIAFLG (DIACON, TTY INPUT, and CONFIG).

L21a-3. functions

module L21A performs the following functions:

a. Verifies that the DIAFLG priority level received from the Executive is within range, and that a job is in Table HDF at that level.

b. Transfers control to the appropriate program module.

L21a-4. inputs

4.1 software

4.1.1 core Tables

Hdf - diaflg clients.

Fwa - executive Interface Work Area.

4.1.2 Drum Tables

None.

4.1.3 Registers

X2 - Contains the priority level (0 through 7) of the set DIAFLG bit detected by the Executive.

4.2 HARDWARE

None.

L21a-5. outputs

5.1 software

5.1.1 core Tables

None.

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

L21a-6. control

6.1 entry points

entry: Reasons for Entry

Points

L21x01: this entry line is used by the Executive upon finding a set DIAFLG bit in its job queue.

6.2 EXIT POINTS

Control is passed to the DIAFLG client associated with the set DIAFLG bit.

a. Level 0 DIAFLG - The client is DIACON; Module L21A passes control to Module L21C at entry point L21X06.

b. Level 1 DIAFLG - The client is TTY INPUT; Module L21A passes control to Module F58 at entry point F58X02.

c. Level 3 DIAFLG - The client is CONFIG; Module L21A passes control to Module L01 at entry point L01X03.

d. Level 2, 4, 5, 6, and 7 DIAFLG bits are not used.

If table HDF has no client waiting to be processed, control is returned to the Executive.

L21a-7. subroutines used

none.

8. NARRATIVE

8.1 discussion

l21a is a core-resident module which is entered by the Executive whenever it detects a set DIAFLG bit in its job queue. The module may be entered from either the Base mode or the Interrupt mode, and re-entered from the Trap mode. L21A performs system checks and transfers control to the called program module. After the called program module has completed processing, control is returned to the Executive through Module L21A.

8.2 technique

not Applicable.

L21b

1. name

l21b - diacon rvpstp handler Module.

L21b-2. purpose

module L21B processes requests to stop a Repair Verify Repeat test which is currently active in DIACON.

L21b-3. functions

module L21B performs the following function:

Resets a control bit in DIACON Table HDR, causing the currently active Repair Verify Repeat test to be stopped.

L21b-4. inputs

4.1 software

4.1.1 core Tables

None.

4.1.2 Drum Tables

None.

4.1.3 Registers

None.

4.2 HARDWARE

None.

L21b-5. outputs

5.1 software

5.1.1 core Tables

Hdr - repeat Test Control Words.

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

L21b-6. control

6.1 entry points

entry: Reasons for Entry

Points

L21x05: entry is made by the macro call RVPSTP, for the purpose of stopping a Repair Verify Repeat test.

6.2 EXIT POINTS

Control is returned to the requesting program.

L21b-7. subroutines used

none.

8. NARRATIVE

8.1 discussion

l21b is a core-resident module which may be entered in either the Base mode or the Interrupt mode, and re-entered from the Trap mode.

Module L21B zeroes the Repair Verify Repeat bit (RVP) in DIACON Table HDR. This stops the currently active Repair Verify Repeat test and extinguishes the REPAIR VERIFY REPEAT lamps at the Maintenance and Control Console (MCC). Although the Repair verify test in progress will not be aborted, it will be the last test run.

8.2 TECHNIQUE

Not applicable.

L21c

1. name

l21c - diacon - diajob interrogater.

L21c-2. purpose

schedules all IMMEDIATE SPECIAL jobs into the proper level of the Executive's work queue. If the job is not an IMMEDIATE SPECIAL, L21C schedules DRUM DIACON (modules L23A, L23B, and L23C), whcih will be responsible for scheduling the maintenance program.

L21c-3. functions

program module L21C performs the following functions:

a. Searches DIACON's DIAJOB Table HDJ for a request to schedule a maintenance program.

b. Determines the job type.

c. Acquires the proper size work area to allow the maintenance program to be scheduled to run.

d. Schedules all IMMEDIATE SPECIAL jobs, or schedules DRUM DIACON if the job is not an IMMEDIATE SPECIAL.

L21c-4. inputs

4.1 software

4.1.1 core Tables

Hdj - diajob table.

Hdo - diagonal Ones Table.

Hdq - wa queue identifier for DIACON.

Hdt - diatab table.

Hdv - diavec table.

Hjc - diacon executable Instructions.

4.1.2 Drum Tables

None.

4.1.3 Registers

None.

4.2 HARDWARE

None.

L21c-5. outputs

5.1 software

5.1.1 core Tables

Edc - diaflg table.

Fwa - exec interface Work Area.

Hdj - diajob table.

Hdt - diatab table.

Lwe - diacon work Area Overlay.

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

L21c-6. control

6.1 entry points

entry: Reasons For Entry

Points

L21x06: entry is made for DIACON Module L21A as a result of the level 0 DIAFLG bit having been set.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

Executive Program: Program control is returned interrupt (associated Executive through DIACON Module L21A.

L21c-7. subroutines used

entry: Functional Names

Points

E01x01: dpu scheduler, E01 is an external subroutine L21B01 or L21A01.

L01x02: configuration Control. L01 is an external subroutine entered for the purpose of acquiring a work area.

L21a01: is an internal subroutine which schedules all IMMEDIATE SPECIAL jobs.

L21b01: is an internal subroutine which schedules DRUM DIACON (Modules L23A, L23B, and L23C).

L21c01: is an internal subroutine which performs the job search of Table HDJ.

L22a03: diacon timer (L22C) is an external subroutine entered from subroutine L21B01. Control is returned to L21C at L21B02.

L21c-8. narrative

8.1 discussion

l21c is a core-resident module which can be entered from the Base mode only, from DIACON Module L21A. L21C is not re-enterable; i.e., once the module is entered, processing must proceed to completion before the module can be re-entered with a new request.

Module L21C searches DIACON's work-to-do Table HDJ for a job that can be scheduled. Table HDJ is searched sequentially, thus establishing job priority. The first word searched is Isolation word 0, and the last word searched is the Audit word.

In some cases, the job found cannot be scheduled; for example, the job requires DRUM DIACON Modules L23A, L23B, and L23C, and DRUM DIACON has already been scheduled to handle another request; or the job requires control of DIACON and DIACON is already busy. When the job found cannot be scheduled, the search is continued. IMMEDIATE SPECIAL jobs do not require control of DIACON or the use of DRUM DIACON. These jobs are scheduled immediately by Module L21C (Subroutine L21A01).

Once a job which can be scheduled has been located, a work area of the proper size is obtained from the Executive's spare work area.

If the job is an IMMEDIATE SPECIAL, it is scheduled by subroutine L21A01. If the job is not an IMMEDIATE SPECIAL, DRUM DIACON is scheduled at Executive Priority Level 0, and a timer within module L22C is started. The timer keeps track of the length of time that DRUM DIACON waits to be serviced. If this interval exceeds approximately 30 seconds, a System Clear and Start is initiated. When DRUM DIACON is called it is responsible for scheduling the requested maintenance program.

Before Module L21C returns control to the Executive, a check is made to determine if any bits in Table HDJ are still set, thereby indicating that DIACON has more work to do. If any bits are set, the Level 0 DIAFLG bit is set so that DIACON Module L21C will be entered again.

8.2 TECHNIQUE

Not applicable.

L21d

1. name

l21d - diacon diarls module.

L21d-2. purpose

module L21D is used to clear DIACON after the termination of a maintenance program so that a new job may be started.

L21d-3. functions

program module L21D performs the following functions:

a. Verifies that the maintenance program requesting release is the one that is currently in control of DIACON.

b. Determines if the program has completed processing, or should be re-scheduled.

c. Re-schedules the job, if necessary.

d. Provides control of indicator lamps on the Maintenance and Control Console.

e. Zeroes DIACON's DIATAB Table.

f. Stops the timers associated with the main tenance program being released.

L21d-4. inputs

4.1 software

4.1.1 core Tables

EDC - DIAFLG Table.

FJB - Base Level Junk.

HDJ - DIAJOB Table.

HDO - Diagonal Ones Table.

HDR - Repeat Test Control Words.

HDT - DIATAB Table.

HLS - MDA Lamp Status.

4.1.2 Drum Tables

None.

4.1.3 Registers.

XI - Contains the return address of the requesting program.

4.2 HARDWARE

None.

L21d-5. outputs

5.1 software

5.1.1 core Tables

EDC - DIAFLG Table.

FJB - Base Level Junk.

HDJ - DIAJOB Table.

HDR - Repeat Test Control Words.

HDT - DIATAB Table.

HLS - MDA Lamp Status.

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

L21d-6. control

6.1 entry points

entry: Reasons for Entry

Points

L21x07: entry must be made by any maintenance program running with control of DIACON which has either completed processing, or has been directed to abort. Entry caused DIACON to be cleared so that a new job may be started.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

Calling Program: Control is returned to the caller.

L21d-7. subroutines used

entry: Functional Names

Points

L22a02: diacon timer Module (L22C). This subroutine causes interval timing associated with the client maintenance program to stop. Control is returned to L21D at line L21A07.

L21d-8. narrative

8.1 discussion

l21d is a core-resident module which may be entered in either the Base mode or the Interrupt mode, and re-entered from the trap mode. The module is entered as a closed subroutine by macro call DIARLS.

L21D must be entered by each maintenance program running under control of DIACON before that program gives up control. If the program is terminating as the result of an abort directive. Module L21D re-schedules the program, if possible.

8.2 TECHNIQUE

Not applicable.

L21e

1. name

l21e - diacon audit handler

L21e-2. purpose

module L21E adds or removes AUDIT requests from DIACON's work queue.

3. FUNCTIONS

Program module L21E performs the following functions:

a. Accepts and stores the request for an AUDIT job.

b. Determines whether the request is to add or remove an AUDIT, and verifies that the job number is valid.

c. Performs the add or delete operation, or returns an error Indicator to the requesting program.

d. Provides a Return-to-user path for DIACON Module L22A.

L21e-4. inputs

4.1 software

4.1.1 core Tables

HBL - Branch Field Loader.

HDO - Diagonal Ones Table.

HJC - DIACON Executable Instructions.

4.1.2 Drum Tables

None.

4.1.3 Registers

A - Contains the return address of the requesting program.

Q - Contains the job number of the AUDIT request to be added or deleted.

4.2 HARDWARE

None.

L21e-5. outputs

5.1 software

5.1.1 core Tables

EDC - DIAFLG Table.

HDJ - DIAJOB Table.

5.1.2 Drum Tables

None.

5.1.3 Registers

A - Contains status information to be returned to the requester (register A equals 0 if the request is succcessful; Register A is negative if the request is not successful).

5.2 HARDWARE

None.

L21e-6. control

6.1 entry points

entry: Reasons for Entry

Points

L20x03: entry is made by macro call AUDRMV to remove an audit request from DIACON's tables.

L20x05: entry is made by macro call AUDROT to add an audit request to DIACON's tables.

L20b01: entry is made from DIACON module L22A. L20B01 is used as a common Return to Caller subroutine by Modules L21E and L22A.

6.2 exit points

control is returned to the requesting program.

L21e-7. subroutines used

entry: Functional Names

Points

L20a01: this internal subroutine performs the add or delete operation.

L20b01: this internal subroutine is used to return control to the requesting program.

8. NARRATIVE

8.1 discussion

l21e is a core-resident module which may be entered in either the Base mode or the Interrupt mode, and re-entered from the Trap mode.

The module verifies that the AUDIT job number received in macro call AUDRMV or AUDRQT is valid (72 to 95 inclusive), before processing the request. If the request is valid, the appropriate bit in the audit word of Table HDJ (DIACON's work queue) is set or reset, thereby adding or removing the AUDIT job.

If an AUDIT request is being added to Table HDJ, the level 0 DIAFLG bit in the Executive's job queue (Table EDC) will be set, thus indicating that DIACON has work to do.

If an AUDIT request is being removed from Table HDJ, the Level 0 DIAFLG bit in EDC will not be reset. The next time that the Executive interrogates DIAFLG, control is transferred through DIACON Module L21A to L21C. If the AUDIT request removed had been the only job waiting in Table HDJ, control will be returned to the Executive.

Exit Routine L20B01 stores any error messages in Register A and returns control to the requesting program. L20B01 is used by this module and by DIACON Module L22A as a common return to requester subroutine.

8.2 TECHNIQUE

Not applicable.

L22a

1. name

L22A - DIACON - DIARMV Module.

L22a-2. purpose

module L22A is used to remove a job which is in DIACON waiting to be scheduled.

L22a-3. functions

program module L22A performs the following functions:

a. Receives requests to have jobs removed from DIACON's work queue.

b. Verifies that the request is valid.

c. Removes the job.

d. Returns a result code to the calling program.

L22a-4. inputs

4.1 software

4.1.1 core Tables

HDO - Diagonal Ones Tables.

HDV - DIAVEC Table.

4.1.2 Drum Tables

None.

4.1.3 Registers

A - Return address of the requesting program.

Q - Contains the job type (bits 7 to 14) and the devide number (bits 0 to 6).

X2 - Contains the unit number.

4.2 HARDWARE

None.

L22a-5. outputs

5.1 software

5.1.1 core Tables

HDJ - DIAJOB Table.

5.1.2 Drum Tables

None.

5.1.3 Registers

A - Register A contains a result code which is to be returned to the calling program.

5.2 HARDWARE

None.

L22a-6. control

6.1 entry points

entry: Reasons for Entry

Points

L22x01: entry may be made by any application program which has determined that a job in DIACON waiting to be scheduled should not be processed.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

L20b01: control is returned to the calling program through DIACON Module L21E. Subroutine L20B01 of L21E is used as a common return by DIACON Modules L21E and L22A.

L22a-7. subroutines used

none.

L22a-8: narrative

8.1 discussion

module L22A is a core-resident module which may be entered from either the Base mode or the Interrupt mode, and re-entered from the Trap mode. Entry is made by macro call DIARMV.

The module verifies that the job type and device number received in macro call DIARMV are valid before processing the request. If they are valid, the job number is formed and the corresponding bit in DIACON's work queue (Table HDJ) is reset.

Module L22A does not reset the level 0 DIAFLG bit in the Executive's job queue when it removes a job. If only one job is waiting in DIACON to be scheduled, and that job is removed, DIACON will still be entered by the Executive. When DIACON's work queue (Table HDJ) is searched, no jobs will be found and control will be returned to the Executive.

L22A will not remove a job from DIACON if that job is already running.

8.2 TECHNIQUE

Not applicable.

L22b

1. name

l22b - diacon skedip module.

L22b-2. purpose

module L22B updates control information in DIACON's DIATAB Table to indicate that a job which has been scheduled in now running.

L22b-3. functions

program module L22B performs the following functions:

a. Updates control information in Table DIATAB (HDTA01) control word.

b. Calls DIACON Module L22C to start interval timers associated with the maintenance program which has been given control.

L22b-4. inputs

4.1 software

4.1.1 core Tables

HDT - DIATAB Table.

4.1.2 Drum Tables

None.

4.1.3 Registers None.

4.2 HARDWARE

None.

L22b-5. outputs

5.1 software

5.1.1 core Tables

HDT - DIATAB Table.

5.1.2 Drum Tables

None.

5.1.3 Registers

None.

5.2 HARDWARE

None.

L22b-6. control

6.1 entry points

entry: Reasons for Entry

Points

L22x03: this entry point must be called by each maintenance program once that program receives control.

6.2 EXITS POINTS

Exit: Reasons for Exit

Points

Calling Program: Control is returned to the requesting program.

L22b-7. subroutines used

entry: Functional Names

Points

L22a01: diacon module L22C is entered as a closed subroutine at entry line L22A01. This subroutine starts timers associated with the maintenance program.

L22b-8. narrative

8.1 discussion

module L22B must be called by each maintenance program controlled by DIACON immediately after receiving control.

8.2 TECHNIQUE

Not applicable.

L23a

1. name

l23a - diacon drum Resident Module Scheduler.

L23a-2. purpose

module L23A schedules all jobs handled by DIACON which are not IMMEDIATE SPECIALS OR AUDITS. Program module L23A performs the following functions:

a. Determines the type of job requested.

b. Performs system checks to verify that the request is valid and that the maintenance program being requested can be run.

c. Acquires the proper size work area to allow the job being scheduled to run.

d. transfers control to DIACON module L23B if the request is for an AUDIT program (123B sets up DIACON's tables to allow the scheduling of AUDIT programs and returns control to L23A).

3. schedules the requested maintenance program.

L23a-4. inputs

4.1 software

4.1.1 core Tables

EDC - DIAFLG Table.

FWA - Executive Interface Work Area.

HDD - DIADAT Table.

HDJ - DIAJOB Table.

HDO - Diagonal Ones Table.

HDT - DIATAB Table.

HDV - DIAVEC Table.

HST - System Status Table.

LCW - Work Area Queue Identifier.

LWE - DIACON Work Area Overlay.

4.1.2 Drum Tables

LDC - DIACON DIACTL Table.

LDL - DIACON DILOC Table.

LJP - Drum DIACON Local Storage

4.1.3 Registers

X1 - Address of Drum DIACON Work Area.

4.2 HARDWARE

None.

L23a-5. outputs

5.1 software

5.1.1 core Tables

EDC - DIAFLG Table.

FWA - Executive Interface Work Area.

HDJ - DIAJOB Table.

HDT - DIATAB Table.

LWE - DIACON Work Area Overlay.

5.1.2 Drum Tables

LJP - Drum DIACON Local Storage.

5.1.3 Registers

X1 - Address of Drum DIACON Work Area.

5.2 HARDWARE

None.

L23a-6. control

6.1 entry points

entry: Reasons for Entry

Points

L23x01: entry is made by the Executive for the purpose of scheduling a maintenance program.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

E01x07 dpu scheduler. Control is returned to the Executive.

L23a-7. subroutines used

entry: Functional Names

Points

E01x01: dpu scheduler.

F04x01: work Area Assignment Module F04 is entered as a closed subroutine from internal subroutine L23A08 for the purpose of acquiring a work area.

F05x01: work Area Return. Module F05 is entered as a closed subroutine if the job requested cannot be scheduled at this time. This subroutine returns the work area to the square work area queue.

L22x05: diacon timer Module. Module L22C is entered as a closed subroutine from internal subroutine L23A07. Entry at L22X05 causes timing of DIACON to be stopped and timing of the Executive takes longer than approximately 10 seconds to call the scheduled maintenance program, a System Clear and Start in initiated.

L23a01: this internal subroutine saves registers A, Q, X1, X2, and X3 in table LJP (DIACON Local Storage).

L23a02: this internal subroutine restores the registers saved by subroutine L23A01.

L23a03: this internal subroutine is entered prior to scheduling the client, this subroutine acquires the priority level that the program should be scheduled on.

L23a04: this internal subroutine returns work areas to the spare work area queue. The subroutine is entered if the work area acquired is not large enough to meet the requirements of the maintenance program being scheduled.

L23a05: this internal subroutine removes the job being scheduled from DIACON's work queue. The subroutine is entered just prior to scheduling the job so that DIACON will not try to process the request a second time.

L23a06: this internal subroutine forms the control word, inserts it into Table HDT (DIATAB) and determines where the user's data is being stored in DIACON's tables.

L23a07: this internal subroutine determines if control is returned to the Executive. if there is more work to do, the Level 0 DIAFLG bit is set so that DIACON will be re-entered to process the request.

L23a08: this internal subroutine is used to acquire a larger work area. The subroutine is entered whenever the work area which has been acquired for a maintenance program being scheduled is not large enough to allow the program to run.

L23b01: diacon drum Resident Module audit Scheduler. DIACON Module L23B is entered as a closed subroutine if it is determined that the program being scheduled is an AUDIT program.

L23b02: diacon drum Resident Module Print Program. DIACON module L23C is entered to print an error message if the job requested is not available at this time. This subroutine will be used if the unit upon which maintenance is to be performed is out of service, or if maintenance is requested on Register Sender and the other Register Sender of the pair is out of service (both Register Senders of a pair cannot be out of service at the same time).

L23e01: diacon drum Resident Module Print Program. DIACON module L23C is entered as a closed subroutine at L23E01 whenever an invalid entry is found in Table LDL (DIALOC). The subroutine outputs an error message to the TTY.

L23e02: diacon drum Resident Module Print Program. DIACON module L23C is entered as a closed subroutine at L23E02 if an invalid AUDIT request is encountered.

L23e03: diacon drum Resident Module Print Program. DIACON module L23C is entered as a closed subroutine at L23E03 is it is determined that a request which is being processed cannot be scheduled at this time. All registers will be saved so that an attempt to schedule the job can be made at a later time.

L23a-8. narrative

8.1 discussion

diacon module L23A is a drum-resident module which is scheduled by DIACON module L21C (subroutine L23B01). Once module L23A is read Into core, it may be entered from either the Base mode or the Interrupt mode, and re-entered from the Trap mode.

Module L23A schedules all DIACON-controlled maintenance programs except IMMEDIATE SPECIAL jobs. IMMEDIATE SPECIAL jobs are programs which can be scheduled without having data input to them from the requesting program. These jobs are scheduled by DIACON module L21C (subroutine L21A01).

Requests to schedule AUDIT program are processed by module L23B (refer to subroutine L23B01).

DIACON module L23C consists of subroutines which are used by L23A and L23B to effect the printout of error messages from the TTY.

8.2 technique

not applicable

L23b

1. name

l23b - diacon drum Resident Module Audit Scheduler.

L23b-2. purpose

module L23B processes requests to schedule AUDIT programs. This module sets up DIACON's tables so that an AUDIT program may be scheduled.

L23b-3. functions

program module L23B performs the following functions:

a. Verifies that the request presented to DIACON is for an AUDIT program and that the request is valid.

b. Acquires the proper size work area so that the AUDIT program to be scheduled can run.

c. Forms and stores in DIACON's tables the control words required to schedule the AUDIT program.

L23b-4. inputs

4.1 software

4.1.1 core Tables

HDQ - Work area Queue Identity for DIACON

LWE - DIACON Work Area Overlay.

4.1.2 Drum Tables

LDL - DIACON DIALOC Table.

4.1.3 Registers

X1 - address of Drum DIACON Work Area.

4.2 HARDWARE

None.

L23b-5. outputs

5.1 software

5.1.1 core Tables

Fwa - executive Interface Work Area Table.

5.1.2 Drum Tables

LJP - DIACON Local Storage Table

5.1.3 Registers

X1 - Address of Drum DIACON Work Area.

5.2 HARDWARE

None.

L23b-6. control

6.1 entry points

entry: Reasons for Entry

Points

L23b01: entry is made for DIACON module L23A as the result of that module having encountered a request to schedule an AUDIT program.

6.2 EXIT POINTS

Exit: Reasons for Exit

Points

L23a03: diacon drum Resident Module Scheduler. This exit point is used when all system checks performed have been successful and a work area has been acquired. Module L23B has set up DIACON's tables and the AUDIT program requested will be scheduled by module L23A.

L23a04: diacon drum Resident Module Scheduler. This exit point is used when a work area large enough to meet the requirements of AUDIT program being scheduled cannot be acquired. DIACON will look for another job to schedule. If no other jobs are waiting to be scheduled, control will be returned to the Executive.

L23b03: diacon drum Resident Module Print Program. This module is entered if L23B has determined that the AUDIT requested has an invalid job number. An error message will be output to the TTY.

L23b-7. subroutines used

entry: Functional Names

Points

L23a01: diacon drum Resident Module Scheduler. Entry into module L23A at L23A01 causes registers A, Q, X1, X2, and X3 to be saved in Table LJP (DIACON Local Storage).

L23a02: diacon drum Resident Module Scheduler. Entry into module L23A at L23A02 causes the registers saved at L23A01 to be restored.

L23a05: diacon drum Resident Module Scheduler. If all checks performed by L23B are successful and if a work area has been acquired, entry is made into DIACON module L23A at L23A05. This subroutine causes the job to be removed from DIACON's work queue so that DIACON will not attempt to schedule the job a second time. Immediately after completion of this subroutine the job will be scheduled (exit point L23A03).

L23a08: diacon drum Resident Module Scheduler. Module L23A is entered at L23A08 when the work area which has been acquired is not large enough to meet the requirements of the job. This subroutine returns the work area to the Executive and attempts to secure a larger work area.

L23b-8. narrative

8.1 discussion

module L23B is a drum-resident module which can be entered only from DIACON Module L23A. Module L23B uses as closed subroutines portions of DIACON modules L23A and L23C.

8.2 technique - not applicable.

L23c

1. name

l23c - diacon drum Resident Module Print Program.

L23c-2. purpose

diacon module L23C formats and controls the output of error messages from DIACON modules L23A or L23B.

L23c-3. functions

program module L23C performs the following functions:

a. Saves control information if an attempt to schedule the maintenance program will be made at a later time.

b. Formats the message to be output to the TTY.

c. Removes the job from DIACON's work queue.

L23c-4. inputs

4.1 software

4.1.1 core Tables

FWA - Executive Interface Work Area.

HDD - DIADAT Table.

LWE - DIACON Work Area Overlay.

4.1.2 Drum Tables

LJP - DIACON Local Storage.

4.1.3 Registers

X1 - Address of work area passed.

4.2 HARDWARE - None.

L23c-5. outputs

5.1 software

5.1.1 core Tables

LWA - Executive Interface Work Area.

5.1.2 Drum Tables - None.

5.1.3 Registers

X1 - address of work area passed.

5.2 HARDWARE - None.

L23c-6. control

6.1 entry points

entry Points: Reasons for Entry

L23b02: entry is made from DIACON module L23A if the job requested cannot be found in table LDC.

L23b03: entry is made from DIACON module L23B after that module has encountered an AUDIT request with an invalid job number.

L23e01: entry is made from DIACON module L23A if an invalid entry is encountered in Table LDL (DIALOC).

L23e02: entry is made from DIACON module L23A if an invalid AUDIT entry is encountered.

L23e03: entry is made from DIACON module L23A if one of the system status checks or sense line checks required by the program being scheduled does not pass, an abort error message will be output to the TTY.

6.2 exit points

exit Points: Reasons for Exit

L23a07: diacon drum Resident Module Scheduler. Program control is returned to DIACON module L23A. If DIACON has more work to do, the Level 0 DIAFLG bit will be set, indicating to the Executive that DIACON has more work to do.

L23c-7. subroutines used

entry Points: Functional Names

E01X01: DPU Scheduler.

F07X07: Output Format and Print.

L23a01: diacon drum Resident Module Scheduler. This subroutine stores registers A, Q, X1, X2, X3 and data block lengths in Table LJP (DIACON Local Storage).

L23a05: diacon drum Resident Module Scheduler. This subroutine (part of DIACON module L23A) removes the job being scheduled from DIACON's work queue.

L23a06: diacon drum Resident Module scheduler. This subroutine (part of DIACON module L23A) forms the control word, inserts it into Table HDT (DIATAB), and determines where the user's data is being stored in DIACON's tables.

L23c01: this internal subroutine sets up the error message which will be output to the TTY.

L23c-8. narrative

8.1 discussion

l23c is a core-resident module which may be entered in either the Base mode or the Interrupt mode, and re-entered from the Trap mode.

The module formats and outputs messages as dictated by error information received from DIACON modules L23A and L23B.

8.2 technique - not applicable.

L24a

1. name

l24a - diacon repeat Handler.

L23a-2. purpose

module L24A performs two unrelated functions for DIACON. The module ensures that repeat tests are run one at a time; in addition, it inserts into Table HAK the identity of expired timers contained in DIACON Module L22C.

L24a-3. functions

program module L24A performs the following functions:

a. Verifies that a repeat test is not currently running before allowing another repeat test to be scheduled.

b. Loads Register A with the identity of an expired timer.

L24a-4. inputs

4.1 software

4.1.1 core Tables

EDC - DIAFLG Table.

HDJ - DIAJOB Table.

HDO - Diagonal Ones Table.

HDR - Repeat Test Control Words.

4.1.2 Drum Tables - None.

4.1.3 Registers - None.

4.2 HARDWARE - None.

L24a-5. outputs

5.1 software

5.1.1 core Tables

EDC - DIAFLG Table.

HAK - System Clear and Start Output Table.

HDJ - DIAJOB Table.

5.1.2 Drum Tables - None.

5.1.3 Registers - None.

5.2 HARDWARE - None.

L24a-6. control

6.1 entry points

entry Points: Reasons for Entry

L24x01: entry may be made from any application program desiring to schedule a repeat test.

L24x03: entry is made from DIACON module L22C if the Drum Resident DIACON interval being timed expires.

L24x04: entry is made from DIACON module L22C if the client interval being timed expires.

6.2 EXIT POINTS

Exit Points: Reasons for Exit

Calling Program: Program control will be returned to the caller if the module had been entered at L24X01. If entry is made at L24X03 or L24X04, module L16U (System Clear and Start) is entered at L16X02.

L24a-7. subroutines used - none.

8. NARRATIVE

8.1 discussion

l24a is a core-resident module which may be entered in either the Base mode or the Interrupt mode, and reentered from the Trap mode.

Module L24A is entered at L24X01 prior to scheduling any repeat test. L24A verifies that another repeat test is not currently running. If a repeat test is running, L24A sets the appropriate bit in Table HDJ (DIACON's work queue), and sets the Level Q DIAFLG bit in the Executive's work queue. DIACON will be entered at a later time to process the repeat request. Program control is returned to the calling program.

Entry at L24X03 or L24X04 causes the identify of the expired timer in DIACON module L22C to be inserted into Table HAK. Program control is transferred to module L16U (System Clear and Start).

8.2 TECHNIQUE - Not applicable.

L50

1. name

l50 - extra Entry Lines for L00.

L50-2. purpose

this module provides two additional entry lines for module L00.

L50-3. functions

module L50 performs the following functions:

a. Provides an entry line for the unit Maniac Set.

b. Provides an entry line for the unit Maniac reset.

L50-4. inputs

4.1 software

4.1.1 core Tables - None.

4.1.2 Drum Tables - None.

4.1.3 Registers - None.

4.2 HARDWARE - None.

L50-5. outputs

5.1 software

5.1.1 core Tables - None.

5.1.2 Drum Tables - None.

5.1.3 Registers - None.

5.2 HARDWARE - None.

L50-6. ccntfci

6.1 entry points

entry Points: Reasons for Entry

150X: To clear the Set/Reset Indicator.

6.2 EXIT POINTS

Exit Points: Reasons for Exit

150X01: Resets Unit Maniacs.

150X02: Sets Unit Maniacs.

L50-7. subroutines used

entry Poins: Functional Names

150X01: Resets unit maniacs on an entire subsystem.

L50X02: Sets unit maniacs on an entire subsystem.

L50-8. narrative

8.1 discussion

this module was provided since there were not enough entry lines in module L00 to do all the required functions.

8.2 TECHNIQUE - Not applicable.

V00

1. name

v00 - configuration interrupt handler (CNFPBH).

V00-2 purpose

this module handles the Recongifuration Pushbutton Interrupt initiated by the maintenance man at the Maintenance and Control Center.

V00-3. functions

a. If there is no MANIAC on the interrupt, V00 schedules the Pushbutton Handler Program (V63).

b. If the interrupt is to be rerouted, V00 schedules, or goes directly to, the designated reroute program.

c. Under all other conditions, V00 takes no action and returns control to the Interrupt Cause and Analysis Program (ICAP).

V00-4. inputs

4.1 software

4.1.1 core Tables

FJP - Interrupt Level Priority Junk Storage.

4.1.2 Drum Tables - None.

4.1.3 Registers - None.

4.2 HARDWARE - None.

V00-5. outputs

5.1 software - none.

5.2 HARDWARE - None.

V00-6. control

6.1 entry points

Entry Points: Reasons for Entry

V00v01: entered by ICAP upon occurrence of the Reconfiguration Pushbutton Interrupt.

6.2 EXIT POINTS

Exit Points: Reasons for Exit

Icap: after completion of processing, V00 returns to ICAP via a RTN through V00's entry line table. The return address is stored there by ICAP.

V00-7. subroutines used

entry Points: Functional Names

E01x01: accept - used to schedule the Reroute program's work area. The Reroute module is at the address identified in FJPA00 when V00 gains control.

E03x02 sttime - used to take the Reroute program's work area off the Timer Queue.

L20x01 diarqt - used to schedule the Pushbutton Handler (V63).

V00-8. narrative

8.1 discussion

the system provides two defined ways to reroute an interrupt via MANIAC (L50). One is to place a properly initialized work area on the timer queue and have MANIAC place the work area address in the MANIAC Reroute Table. When the interrupt comes true, the handler removes the work area from the timer queue and schedules it. The second method is to supply MANIAC with a Program Locator Table Address and entry line. The handler will BSP thru the PLT address to the reroute Module. In this case the Reroute Module must return control to the Interrupt Handler.

8.2 TECHNIQUE

When V00 is given control by ICAP, if first checks the MANIAC conditon imposed on this interrupt as identified in FJPA97. If it is to be handled normally, V00 schedules V63 (the Pushbutton Handler) via DIACON and returns to ICAP.

If the interrupt is to be rerouted, V00 checks bit 23 of FJPA99, the MANIAC Schedule on Branch (SOB) bit. If this bit is set, V00 assumes the Reroute Program is to be scheduled. It requests the work area identified in FJPA99 to be taken off the timer queue and schedules. If the work area is not on the timer queue, V00 returns to ICAP. If the bit is not set, V00 assumes the FJPA99 contains a PLT address and entry line. V00 executes a BSP thru this PLT address indexed by the entry line. Upon return from the reroute module, V00 returns to ICAP.

V63

1. name

v63 - configuration Push Button Handler (CNFPBH) Module.

V63-2. purpose

the CNFPBH program (module V63) provides a maintenance man the ability to reconfigure the system from the Maintenance and Control center (MCC). The MCC configuration takes precedence over any software configuration and it has equal status with the power configuration. Module V63 does not allow the maintenance man to place the system in a configuration where two units of a pair are off-line and/or powered down. When module V63 takes a unit off-line, it sets the MCC bit for that particular unit.

V63-3. functions

module V63 performs the following functions:

a. Performs a validity check on all push button requests, to take a unit off-line.

b. Decides whether or not the push button off-line is valid. Module V63 then interfaces with the Configuraton Control (CONFIG) Program (module L01) to place a unit Maintenance-out-of Service (MOS) and off-line.

c. Resets a units MCC bit and schedules the unit's verificaton program via the Diagnostic Control (DIACON) Program (module L20).

d. Outputs a message informing the maintenance man that a push button request was denied.

V63-4. inputs

4.1 software

4.1.1 core Tables

FJB - Base Level Junk.

FWA - Executive Interface Work Area.

HCC - Configuration Control Table.

HCL - Configuraton Pushbutton Last Look Table.

HCT - Configuraton Pushbutton This Look Table.

HDO - Diagonal Ones Table.

HDP - Configuration Push Button Handler Data.

HST - System Status Table.

LWB - Error Parameters

4.1.2 Drum Tables - None.

4.1.3 Registers - None.

4.2 HARDWARE

Sense Line 03100.

Sense Line 55004.

Sense Line 74001.

Sense Line 74002.

V63-5. outputs

5.1 software

5.1.1 core Tables

Fwa - executive Interface Work Area.

HCL - Configuration Pushbutton Last Look Table.

HCT - Configuration Pushbutton This Look Table.

HDP - Configuration Pushbutton Handler Data.

LWB - Error Parameters.

5.1.2 Drum Tables - None.

5.1.3 Registers - None.

5.2 HARDWARE - None.

V63-6. control

6.1 entry points reasons for Entry

V63x01: v63x01 is scheduled, via DIACON, when module L20 receives a request to schedule module V63.

V63x02: v63x02 is entered when CNFPBH detects a unit that is to be placed on-line.

V73x03: v63x03 is entered when CNFPBH detects a unit that is to be placed off-line.

V63x04: v63x04 is scheduled, via Executive (EXEC) by the Marker Configuration program (module L02), to place a marker in service. Module V63 transfers control to module L02 for this operation.

V63x05: v63x05 is scheduled, via the EXEC by module L02 to place a marker off-line. Module V63 transfers control to module L02 for this operation.

6.2 EXIT POINTS

Exit Points: Reasons for Exit

V64x03: cnfpbh program: V64X03 is used to place a marker back in service.

V64x04: cnfpbh program: V64X04 is used to place a marker MOS and off-line.

V63-7. subroutines used

entry Points: Functional Names

E01x03: data Processing Unit (DPU) - Scheduler (RELEAS).

L01x04: config program.

L02x01: marker Configuration.

L03x02: configuration Subroutines - Restore Registers.

L03x03: configuration Subroutines - Teletypewriter (TTY) Output.

L20x03: diacon - request Acceptor (DIARQT).

V01x05: mcc i/o handler (MCCIOH).

V63-8: narrative

8.1 discussion

each configuration unit in the system has as a minimum of four status bits under the control of either CONFIG, CNFPBH, or PMSCAN. These bits are as follows: MOS, Out of Service (OS), MCC, and Power Down (POW). If no bits are set, the unit's stats is in-service. The MOS bit signifies that the unit is available only to maintenance programs. This bit can only be set and reset by CONFIG. The OS bit signifies that this unit is not equipped power down, or not to be used since another unit is power down. The OS and POW bits only can be set by PMSCAN. If the POW bit is set, one or more units must be OS. All units which are OS must also be MOS. The MCC bit signifies that the unit is MOS and was taken off-line by a request initiated from the MCC push buttons. The OS and MOS bits are located in the table HST, the POW bits are located in the PMSCAN last look table, and the MCC bits are located in the CNFPBH last look table.

The MCC push buttons and power have equal status, thus both have a higher priority than the TTY or program requests, when requesting configuration changes. A request from the MCC overrides any TTY or program request, however, it does not override any decisions initiated in PMSCAN, because of power requirements.

The system's configuration philosophy, of always having at least one unit of a pair in service at all times, (except for a temporary MOS configuration in some subsystems) is followed by CNFPBH. Before requesting that a unit be taken off-line CNFPPH requests that its mate be placed in-service. The request will be denied if the mate unit is OS or MOS. Since these states cannot be overridden, CNFPBH regards the request as invalid and prints out a message denying the push button request. If the mate is only MOS or already in service, the request to CONFIG is honored and CNFPBH requests CONFIG to take the unit MOS and off-line. CNFPBH then sets the MCC bit. With the MCC bit set no source of reconfiguration requests can make the mate MOS. This is because no source has the priority to override the MCC bit. Another push button request on the mate or a power request to take the mate unit OS is denied, since they have equal priority on a first come first serve basis. No request can place the unit back inservice until the MCC bit is reset. The MCC bit only can be reset by resetting the push button or when it is impossible to communicate with the MCC. The last condition prevents lock-out on units which have the MCC bit set at the time a fault occurs in the MCC.

When the push button is reset, CNFPBH resets the MCC bit and schedules repair verification on the unit. Since the MCC bit is reset the repair-verify program is free to set the unit in service if the unit passes or MOS if it does not. Scheduling of repair-verification instead of CNFPBH directly placing the unit in service assures that the unit is functioning correctly before it is placed in service.

If a unit is MOS and an off-line pushbutton request is initiated on its mate, CNFPBH directly forces the MOS unit in service via CONFIG enabling its mate to be taken MOS and off-line. Caution should be exercised in this override.

Upon finding a push button request which CNFPBH cannot honor, CNFPBH utilizes PRFPNT to output a message. To accomplish this, CNFPBH passes a code corresponding to a particular output message to the Configuration Subroutines - TTY Output program (module L03). Module L03 places the code word in table HTT and schedules PRFPNT via DIACON. When PRFPNT gains control, it formats the message and transfer control to the output program. The output program reschedules PRFPNT after the message is outputted. This cycle continues until all entries in table HTT are outputted. This mechanism is utilized by CNFPBH, CONFIG, and PMSCAN assuring their messages are in the correct order and do not cause a Work Area (WA) overload condition.

8.2 TECHNIQUE

Cnfpbh is scheduled by DIACON as a result of a request by either System Clear and Start, MCC Unit Clear and Start, or the Push Button Configuration Interrupt Handler programs. In all situations, entry point V63X01 is used. CNFPBH first checks a flag in table HDP verifying that it has not already been scheduled and taking a real time break. When CNFPBH takes a real time break it releases control. When CNFPBH is not taking a real time break, since line 03100 is checked. Sense line 03100 indicates the status of the Maintenance Device Buffer (MDB) push button. If the MDB push button is set, the MDB is taken MOS off-line, its MCC bit is set and CNFPBH is released. If the MDB pushbutton is not set and the MDB MCC bit is set, CNFPBH schedules the MDB Clear and Start program on the unit and releases controls. When sense line 03100 indicates that no action is required on the MDB, CNFPBH checks if communications with the Push Button Adapter (PBA) is possible. The procedure includes checking the power status of the Computer Channel Multiplex - A (CCX-A) the Maintenance Routining Logic Frame-A (MRLF-A), and the on-line/off-line status of the MDB (as indicated by sense line 55004). If either CCX-A or the MRLF-A is power down, or if the MDB is not or cannot be placed on-line, CNFPBH prints a message, resets all MCC bits, and releases control.

When communication with the PBA is possible CNFPBH uses the MCC I/O Handler (MCCIOH) program (module V01) to read the status of the push buttons from the PBA. The words are OR'ed with table HCV to zero bits which correspond to nonequipped units or are spare bits. The results are stored in table HCT.

Module V63 compares the Drum Control Unit (DCU) bits of tables HCT and HCL. First a search for the reset push buttons is initiated. If a reset push button is found, the MCC bit (in table HCL) is reset and table HUD is referenced to obtain the repair-verification code necessary to schedule the repair verification program, via DIACON. CNFPBH searches for push buttons which were just set. If one is found, the unit's mate is placed in-service and the unit is taken MOS and off-line, via CONFIG requests. The request code numbers are found in table HCA. If these CONFIG requests are honored the units MCC bit in table HCL is set; otherwise, a TTY message is outputted. AFter all DCU requests are processed, tables HCT and HCL are compared. If they are equal, (no further requests) CNFPBH releases control. If they are not equal all other bits in tables HCT and HCL are compared in the drum portion of CNFPBH, via the scheduling of the CNFPBH program (module V64).

* * * * *


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed