UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Sysrec : a computer program to record transmission network structures Gray, Barry Hugh 1971

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Notice for Google Chrome users:
If you are having trouble viewing or searching the PDF with Google Chrome, please download it here instead.

Item Metadata

Download

Media
831-UBC_1971_A6_7 G73.pdf [ 4.44MB ]
Metadata
JSON: 831-1.0051280.json
JSON-LD: 831-1.0051280-ld.json
RDF/XML (Pretty): 831-1.0051280-rdf.xml
RDF/JSON: 831-1.0051280-rdf.json
Turtle: 831-1.0051280-turtle.txt
N-Triples: 831-1.0051280-rdf-ntriples.txt
Original Record: 831-1.0051280-source.json
Full Text
831-1.0051280-fulltext.txt
Citation
831-1.0051280.ris

Full Text

SYSREC: A COMPUTER PROGRAM TO RECORD TRANSMISSION NETWORK STRUCTURES by BARRY HUGH GRAY v B.A., University of Victoria, 1968 A THESIS SUBMITTED IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF Master of Science in the Department of Computer Science We accept this thesis as conforming to the required standard THE UNIVERSITY OF BRITISH COLUMBIA April , 1971 In presenting this thesis in partial fulfilment of the requirements for an advanced degree at the University of Brit ish Columbia, I agree that the Library shall make it freely available for reference and study. I further agree that permission for extensive copying of this thesis for scholarly purposes may be granted by the Head of my Department or by his representatives. It is understood that copying or publication of this thesis for financial gain shall not be allowed without my written permission. The University of British Columbia Vancouver 8, Canada ABSTRACT The design of large-scale i n d u s t r i a l or experimental f a c i l i t i e s oftentimes involves the routing of complex networks of power supply l i n e s , c o n t r o l l i n e s or s i g n a l s , heating or cooling ducts, product transmission pipes etc. In such cases i t i s e s s e n t i a l to be able to maintain an up-to-date, e a s i l y a c c e s s i b l e , global record of each cable, duct or s i g n a l path, the function each performs and i t s r e l a -t i o n to l i k e elements within the system. I t i s the purpose of t h i s thesis to describe such a f a c i l i t y as implemented by a conversational computer program - SYSREC. The f a c i l i t y discussed allows the user to b u i l d network c o n f i -gurations, perform minimum path routing of signals etc., delete connectors or signals and save the record of a network f o r further modification at some l a t e r date. In add i t i o n , i t i s possible to generate output summarizing, i n d e t a i l , the status of a given network. The program i s designed to perform the above operations i n t e r a c t i v e l y by means of commands inputted by the user. The thesis i s composed of two l o g i c a l l y separate sections; a User's Manual describing the c a p a b i l i t i e s and usage of the program and a Logic Manual describing the i n t e r n a l l o g i c of the program. The purpose of such a separation i s to provide s e l f contained references for two d i s t i n c t l e v e l s of user: the general user and the user who wishes to extend or modify the e x i s t i n g implementation. Since both the User's Manual and the Logic Manual contain t h e i r own tables of contents, appendices e t c . , the thesis may be s p l i t i n t o two p h y s i c a l l y d i s t i n c t parts should the need a r i s e . ( i i ) ACKNOWLEDGEMENT The author wishes to thank h i s advisors Mr. W. Dettwiler and Dr. R. Johnson for t h e i r support, guidance and encouragement during the preparation of t h i s t h e s i s . In a d d i t i o n , the author i s thankful to fellow-student Greg Shannan f o r h i s many h e l p f u l h i n t s regarding assembler language coding. F i n a n c i a l support from Dr. D. Seeley, the Department of Computer Science and TRIUMF i s g r a t e f u l l y acknow-ledged. The typing of the f i n a l manuscript was done by Olwen Sutton to whom the author also extends.his thanks. V SYSREC USER'S MANUAL Barry H. Gray Department of Computer Science U n i v e r s i t y of B r i t i s h Columbia A p r i l , 1971 ~3 I . i TABLE OF CONTENTS Page Preface , 1.1 Section 1 General Introduction 1.3 1.1 Purpose 1.3 1.2 Functions Performed 1.4 1.3 Limitations 1.5 1.4 General Remarks 1.5 Section 2 SYSREC Command Language 1.7 2.1 Concepts 1.7 2.2 Input Formats 1,7 2.3 Command Descriptions 1.9 2.3.1 Notation and Terminology 1.9 2.3.2 Commands I.10 Section 3 Output 1.34 3.1 Output from SYSREC Commands 1.34 3.1.1 LIST output 1.34 3.1.2 SUMMARY output 1.34 - 3.1.3 TRACE output 1.37 3.2 Output from e r r o r messages 1.40 Section 4 Program Execution 1.41 " 4.1 General Startup/Termination 1.41 • 4.2 Interrupt Procedure 1.41 4.3 Startup requirements under MTS 1.42 Bibliography Appendix A Appendix B Appendix C Program Generated Messages Minimum Path Algorithm and i t s Operation SYSREC Command Prototypes I . i i Page 1.44 I.A.I I.'B.l , I.C.I SYSREC USER'S MANUAL  Preface This manual i s a procedural guide to the use of the program SYSREC. I t i s directed towards users f a m i l i a r with both transmission network designs and the use of time-shared computing f a c i l i t i e s . The manual contains the following information: 1) program c a p a c i l i t i e s 2) program r e s t r i c t i o n s 3) a v a i l a b l e SYSREC Commands 4) i n i t i a t i o n / t e r m i n a t i o n procedures 5) input/output p a r t i c u l a r s 6) e r r o r message explanations The manual i s composed of four sections, the f i r s t three of which deal with the o v e r a l l f u n c t i o n a l c a p a b i l i t i e s of SYSREC without reference ( f o r the most part) to any p a r t i c u l a r operating environment. These three sections are: Section 1 - General Introduction Section 2 - SYSREC Command Language Section 3 - Obtainable Output The fourth s e c t i o n discusses the procedures required to i n i t i a t e exe-cution of the program and, i n p a r t i c u l a r , how to i n i t i a t e execution under the con t r o l of the Michigan Terminal System (MTS). The above four sections are complemented by three appendices: Appendix A describes the meaning of a l l program-generated messages; Appendix B describes the minimum path algorithm used by SYSREC i n i t s routing of pathways; Appendix C summarizes the prototypes of a l l 1.2 available SYSREC commands. This manual does not describe usage of the MTS command language; thus persons wishing to use SYSREC with UBC-MTS and who are not familiar with MTS w i l l be forced to learn the MTS command language. 1.3 Section 1: GENERAL INTRODUCTION 1.1 Purpose The design of large-scale industrial or experimental f a c i l i t i e s oftentimes involves the routine of complex networks* of power supply lines, control lines or signals, heating or cooling ducts, product transmission pipes, etc. In such cases i t i s essential to be able to maintain an up-to-date, easily accessible, global record of each cable, duct or signal path, the function each performs and i t s relation to like elements within the system. The purpose of SYSREC*t is to provide such a f a c i l i t y by means of a conversational computer program. The SYSREC program was designed following the requirements of the TRIUMF project, which i i this light i s concerned with recording status i n -formation of a network of el e c t r i c a l cables and control signals. t The program i s , however, not limited to use i n connection with elect-r i c a l networks, and obvious generalizations should suffice to visual-ize the use of the program with other types of transmission networks. SYSREC i s intended for use: 1) in the design stages of a project as a 'scratchpad' permitting formulation and modifications of i n i t i a l network designs 2) in the expansion stages of a project as a means of detailing the currently existing configuration and possible expansion points * In what follows the terms network, configuration and system w i l l be used interchangeably to denote any global organized structure of nodes and connecting pathways - in particular, structures in an ele c t r i c a l sense, i.e. terminal boards, connecting cables, signals. *t SYStem RECord t For this reason alone the manual is written in terms of el e c t r i c a l cabling networks. 3) as a bridge between design and implementation personnel by outputting detailed information about required interconnections and signal routes 4) in the maintenance of a project by keeping an up-to-date global record of a given network. 1.2 Functions Performed SYSREC allows the users to perform the following functions: 1) define terminal boards by name and size 2) define cables by name and size and place same as connectors i between terminal boards 3) define signals by name and route these signals automatically between terminal boards with automatic insertion of required jumper lines 4) remove signals from a cable line or disconnect a cable from terminal boards 5) extend existing signals to other parts of the network 6) l i s t a l l current terminal boards, cables and signals 7) trace a signal throughout the network, examine a cable line or terminal board pin 8) summarize the current status of individual or a l l signals, cables or terminal boards within the network 9) save the current record for use by a subsequent run The automatic signal routing algorithm ensures minimal length paths between specified terminal boards. When an operation contra-dictory to the physical constraints of the current network i s attempted, or whenever the SYSREC input syntax has been violated, the program 1.5 generates an e r r o r message. 1.3 Limitations SYSREC does not optimize network flows nor does i t optimize p h y s i c a l routing of cables and signals except on minimum length c r i t e r i a . Network configurations structured or recorded by SYSREC must conform to the following requirements: 1) a cable can be attached to exactly two terminal boards 2) cable l i n e s are attached to consecutive terminal board pins 3) the dimension of the s i g n a l may not be s p l i t over two p a r a l l e l cables: i . e . i f a s i g n a l i s conducted by a cable at any point, the complete dimension of the s i g n a l must run i n that cable 4) a dimensioned s i g n a l occupies consecutive l i n e s w i t h i n a cable 5) jumpers between sets of pins on terminal boards are attached consecutively within each set (e.g. pins 10, 11, 12 may be jumpered to pins 34, 35, 36) 6) a s i n g l e terminal board p i n may have at most one cable l i n e and two jumper l i n e s attached to i t 7) the maximum number of l i n e s / c a b l e or pins/terminal board i s 32,767 1.4 General Remarks The SYSREC program operates under the Michigan Terminal System at the U n i v e r s i t y of B r i t i s h Columbia. SYSREC source language i s 360/Assembler Language, which was chosen f o r the following reasons: 1) high execution speed - being a conversational program, SYSREC should operate with as l i t t l e delay as possible 1.6 2) low operating cost - minimum core storage (currently 20,000 bytes excluding expandable storage vectors), maximum efficiency and execution speeds result from the use of Assembler Language The program operates in both conversational and batch modes, the former normally being used. Batch mode i s a means of generating quantities of output data. i I 1.7 Section 2: SYSREC COMMAND LANGUAGE 2.1 Concepts SYSREC operates i n response to a sequence of commands given by the user, which are entered either from a terminal or via a batch stream. When given a command, SYSREC interprets i t , performs the requested operation, and generates an output statement indicating successful completion of the requested operation or the encounter of some error condition. Commands are accepted u n t i l a QUIT command, which terminates execution of the program, i s encountered. Commands are phrased i n the SYSREC Command Language, which follows a rather rigidly defined syntactical format. Each command must be i n a form defined by the prototype for that particular command. If not, an error condition w i l l arise, processing of the command w i l l cease, and the user w i l l have to re-enter the command in corrected form. 2.2 Input Formats Commands submitted to SYSREC are presented on a line-by-line basis, the length of the line being a function of the input device being used. A command may be continued from one input line to the next by inserting a minus sign (-) as the last character of the line to be continued. A command may be given on not more than three separate, consecutive i n -put lines thus allowing a maximum of 396 characters per command (a single input line may thus contain not more than 132 characters -currently more than the possible input line length for any remote ter-minal). The following considerations also govern the command language: 1.8 1) The only acceptable input characters are A-Z, 0-9, (,), =, blank character, *, 1 1. The use of any other characters w i l l generate an i n v a l i d character error condition. The minus sign i s unique, and i s not a v a l i d character except f or continuation purposes. 2) Any names given to terminal boards, cables, or signals must not exceed eight characters i n length, must begin with a l e t t e r (A-Z), and must be composed of alphanumeric characters. 3) Any numbers given to specify p i n numbers or l i n e numbers must be within the range 0-32767 i n c l u s i v e . 4) A blank character must be used as a d e l i m i t e r between e n t i t i e s i n a command statement. 5) Keywords for a command may be given i n any order, but must contain an equals sign (=) d e l i m i t i n g the keyword, or i t s abbreviated form, from the value given. 6) The characters comprising an input l i n e need not s t a r t i n column one of the l i n e . 7) The character slash (/) i s an automatic p r e f i x to any input to, or output from, SYSREC. The slash character appearing by i t s e l f at the beginning of a l i n e indicates that SYSREC i s ready to accept intput. 8) The appearance of the word DONE following the submission of a command indicates that processing requested by that command has been s u c c e s s f u l l y completed, regardless of the appearance of other messages (see Section 3.2 on error messages). 3 Command Descriptions 2.3.1 Notation and Terminology The f i r s t two l e t t e r s of each command i d e n t i f y that command uniquely; thus only those l e t t e r s need be given. S i m i l a r l y , only the f i r s t two l e t t e r s of most keywords are needed. Some keywords have i d e n t i c a l f i r s t two l e t t e r s ; these are distinguished by t h e i r f i r s t three l e t t e r s . Acceptable minimum abbreviations f o r commands and key-words are underlined i n the prototype statements. The following conventions are used i n the prototype statements: 1) Items i n lower case represent symbolic quantities which are to be supplied by the user. 2) Items i n upper case are part of the command and must be given as i n d i c a t e d . 3) [ ] denotes enclosed material i s optional. 4) { } denotes possible choices, only one of which i s allowed. The following commands are a v a i l a b l e to the SYSREC user: 1.10 2.3.2 Commands Name: ALTER I Purpose: to increase the number of pins on a terminal board Prototype: ALTER tbname(totalpins) tbname i s the name of the terminal board on which a new number of pins i s requested. totalpins i s the new number of total pins requested for x the terminal board. It must be greater than or equal to the total number of pins currently on the terminal board. Use: To increase the number of pins on a terminal board i n the event that a l l current pins are i n use. A maximum of nine individual alterations per terminal board i s permitted. Effect: The total number of pins on tbname i s set to totalpins. Examples: ALTER TBN(IOO) AL B0ARD1O(575) Name: Purpose: Prototype: Use; 1.11 CONNECT to route a s i g n a l along a s p e c i f i e d cable. CONNECT cname[(startlineno.)] sname(sigdim) [CODE=code value] [DESC=description] cname i s the name of the cable along which the s i g n a l i s to run. s t a r t l i n e n o . i s a cable l i n e number s p e c i f y i n g the f i r s t of sigdim consecutive l i n e s along which s i g n a l i s to run. Default i s s t a r t l i n e n o . = f i r s t of sigdim consecutive l i n e s not yet carrying a s i g n a l . sname i s the name assigned to the s i g n a l being routed. sigdim represents the 'dimension' of the s i g n a l , the number of l i n e s within one cable necessary to carry the s i g n a l . codevalue i s a two-digit number i n d i c a t i n g that t h i s s i g n a l may only run along those cables with code value equal to codevalue. Default i s CODE=00. de s c r i p t i o n i s any phase d e s c r i p t i v e of the s i g n a l being routed. I t may not contain embedded quotation marks or minus signs. To route s i g n a l s . e x p l i c i t l y from terminal board to terminal board. I t i s an a l t e r n a t i v e to. the PUT command which routes signals automatically. 1.12 E f f e c t : The named s i g n a l i s routed along the s p e c i f i e d cable. If a s u f f i c i e n t number consecutive l i n e s i s not a v a i l -able within the cable, the s i g n a l i s not routed. Should the cable code and the requested code value not match, the s i g n a l i s not routed. Examples: CONNECT CABL(IO) SIGNAL1(4) C l SIG100(50) C0DE=99 DESC='CONTROL SIGNAL' 1.13 CREATE to create a terminal board CREATE tbname(no.pins) [WEIGHT=weightvalue] [DESC='description'] tbname i s the name assigned to the terminal board being created no.pins i s the number of pins on the terminal board. The pins are numbered seq u e n t i a l l y from 1. weightvalue represents a weighted value to be assigned to the terminal board. Weight values aire considered by the minimum path algorithm. Default i s WEIGHT=0. de s c r i p t i o n i s any phrase d e s c r i p t i v e of the terminal board. I t may not contain embedded quotation marks, or minus signs. To create terminal boards and to set appropriate i n i t i a l values. Terminal board tbname i s created with the s p e c i f i e d i n i t i a l c h a r a c t e r i s t i c s . CREATE TBN(IOO) CR B0ARD(120) WEIGHT=1000 DESC-'THIS IS THE MAIN" PANEL' 1.14 Name: DESCRIP Purpose: to attach a d e s c r i p t i v e phrase to a cable, s i g n a l or terminal board Prototype: DESCRIP P CABLE=cname \ DESC='description' ' 'SIGNAL=sname ^ TB=tbname cname i s the name of a cable sname i s the name of a s i g n a l tbname i s the name of a terminal board d e s c r i p t i o n i s the appropriate d e s c r i p t i v e phrase. I t may not contain embedded quotation marks or minus signs. Use: E i t h e r to describe a network e n t i t y not having a descrip-t i o n f i e l d s p e c i f i e d when f i r s t created, or to modify an already e x i s t i n g d e s c r i p t i o n f i e l d . E f f e c t : The d e s c r i p t i o n phrase given becomes the current descrip-t i o n f o r the s p e c i f i e d e n t i t y . Examples: DESCRIP CABLE=C1 DESC='THIS CABLE WAS FORMERLY A COAX CABLE'. 1.15 Name: DISCONN Purpose: to disconnect a s i g n a l or cable Prototype: DISCONN j SIGNAL=sname| \ CABLE=cname sname i s the name of the s i g n a l to be disconnected. cname i s the name of the cable to be disconnected. Use: This command deletes signals or cables from the current configuration. I f SIGNAL=sname i s s p e c i f i e d , an announce-ment i s made i n d i c a t i n g that shame i s to be disconnected and confirmation of intent i s requested. The only a f f i r m a t i v e response i s OK. I f CABLE=cname i s s p e c i f i e d , a l l s i g n a l s c u r r e n t l y run-ning through chame ( i f any) are l i s t e d followed by an announcement that cname i s to be disconnected and con-firmation of in t e n t i s requested. The a f f i r m a t i v e reply i s OK. E f f e c t : I f SIGNAL=sname i s s p e c i f i e d , sname i s removed from the current configuration. A l l terminal board pins and _ cable l i n e s formerly occupied by the s i g n a l are considered a v a i l a b l e to carry new s i g n a l s . Any jumper l i n e s i n s e r t e d at the time sname was routed are removed. I f CABLE=cname i s s p e c i f i e d , cname i s removed from the current configuration. A l l terminal board pins to which cname was formerly attached are considered a v a i l a b l e f o r connections to new cables. In add i t i o n , each s i g n a l currently running through the cable i s disconnected i n the same manner as described f o r the SIGNAL=sname option. Examples: DISCONN SIGNAL=S101 DI CABLE=CABLE100 1.17 Name: Purpose: Prototype: Use: EXTEND to extend the range of an existing signal EXTEND sname BETWEEN tbnamel[(startpinno.)] AND tbname2[(startpinno.)] [DIRECTION \] [SL=sublabel] 'sname is the name of an existing signal, the range of which i s to be extended. tbname1 is the name of a terminal board through which the signal currently runs. tbname2 i s the name of the terminal board to which the signal is to be extended startpinno. is a terminal board pin number specifying the f i r s t pin of the terminal board through which the extended signal i s to run. Default i s startpihno.=first of sigdim consecutive pins not yet carrying a signal where sigdim i s the dimension of the signal being EXTENDed. sublabel is a number to be used as a descriptive quantity for this particular extension of the signal. Default i s SL=00 To extend a signal previously routed in accordance with the PUT or CONNECT commands. The dimension and code attributes of the extension are the same as those specified when the signal was i n i t i a l l y routed. The DIRECT=keyword indicates whether or not the extension i s 1.18 to be made according to the minimum path c r i t e r i o n . DIRECT=ON requires that there be at l e a s t one cable with s u f f i c i e n t free consecutive l i n e s and code type connecting the terminal boards. The s i g n a l i s extended along t h i s cable, regardless of possible shorter routes. DIRECT=OFF s p e c i f i e s that the extension i s to be made on a minimum path length b a s i s . The default f o r t h i s option i s DIRECT=OFF. This command with the DIRECT=ON option may be used to route a defined s i g n a l e x p l i c i t l y from terminal board to terminal board. The named s i g n a l i s extended as requested. For the DIRECTOFF option, the e f f e c t of i n s u f f i c i e n t terminal board pins, i n s u f f i c i e n t cable l i n e s , or d i s s i m i l a r code values i s the same as i n the case of the PUT command. For the DIRECT=ON option these s i t u a t i o n s r e s u l t i n the s i g n a l not being extended. In the case of successful completion under e i t h e r option, jumper l i n e s are i n s e r t e d on tbnamel from those pins through which the s i g n a l currently passes to an appropriate set of -pins on tbnamel not occupied by a s i g n a l . EXTEND SIG1 BETWEEN TBI AND TB2 EX SG1000 B TBD(IO) A TBE(IOO) DIR=ON SL=1 1.19 Name: Purpose: Prototype: Use: Examples: LIST . to obtain a l i s t of a l l signal names, cable names, or terminal board names LIST f SIGNALS> To obtain a l i s t i n g of a l l currently defined signals, cables or terminal boards.' LIST TBS LIST SIGNALS .1.20 Name: MTS Purpose: to return to MTS command mode Prototype: MTS Use: To cause input processing to return to the co n t r o l of MTS. Any MTS command other than RUN, LOAD, UNLOAD or SIGNOFF may then be issued. A return to processing by SYSREC may be made by i s s u i n g the MTS command $RESTART. Example: MTS 1.21 Name:' PUT Purpose: To place a minimum length signal between two terminal boards. Prototype: PUT sname(sigdim) BETWEEN tbnamel[(startpinno.)3 AND tbname2[(startpinno.)] [CODE=co devalue] [DESC='description'] sname i s the name assigned to the signal to be placed between the two terminal boards sigdim i s a number representing the dimension of the signal (ie the number of lines needed to carry the s i g -nal within one cable) tbnamel, tbname2 are the names of the terminal boards between which the signal runs. startpinno. i s a terminal board pin number specifying the f i r s t of sigdim consecutive pins to which the signal i s to run. Default i s startpinno.=first of sigdim consecu-tive pins not yet carrying a signal. codevalue i s a two-digit number indicating that this signal may run along only those cables having code _ values equal to codevalue. Default i s CODE=00. description i s any phrase descriptive of the signal. It may not contain embedded blanks, or minus signs. Use: To create and route a signal between (certain pins of) two terminal boards by the shortest path. 1.22 E f f e c t : The named s i g n a l i s routed between the given terminal boards according to a minimum path c r i t e r i o n on the basis of the current network configuration. Jumpers between pins on the same terminal board are added automatically as required. Should there be i n s u f f i c i e n t consecutive free pins on a terminal board, or i n s u f f i c i e n t consecutive free l i n e s within a cable, that terminal board or cable i s discarded from consideration as a possible conductor of the s i g n a l . Further, should a cable code and the requested code not match, that cable i s also discarded from consideration. (See Appendix B for d e t a i l s of the minimum path algorithm and i t s opera-tions.) Examples: PUT Si(4) BETWEEN TBI and TB2 PUT SIGl(lOO) B Tl(10) and TBB2(50) C0DE=25 DESC='DESCRIPTION OF SIG1 1 1.23 Name: QUIT Purpose: to terminate execution of SYSREC Prototype: QUIT Use: To terminate program execution and to return to MTS command mode. P r i o r to terminating execution, QUIT i n i t i a t e s the procedure which allows the user to save, i n a f i l e of h i s choice, the current network c o n f i -guration. When QUIT i s issued, the user i s prompted to enter an MTS f i l e name i n t o which the current network w i l l be written. The name given may i n d i c a t e e i t h e r a permanent or scratch f i l e . I f the f i l e name given does not already r e f e r to an e x i s t i n g f i l e , SYSREC w i l l create a f i l e of appropriate type (permanent or scratch) and of s u f f i c i e n t s i z e to accommodate the data record being written. In the case of a permanent f i l e , i f the f i l e s i z e required to hold the record i s larger than the maximum f i l e space remaining to the user, he w i l l be prompted to re-enter a f i l e name denoting a scratch f i l e . I f the f i l e name does r e f e r to an e x i s t i n g f i l e , the user w i l l be asked to confirm an i n t e n t i o n to destroy the f i l e . I f the user response i s - OK - the f i l e i s destroyed and another of the same name i s created i n i t s place. I f the f i l e name given i s an i l l e g a l name, the user i s prompted to enter a corrected form. 1.24 E f f e c t : Example: Note 1: Note 2: When a save f i l e of correct s i z e has been established, SYSREC saves the current configuration i n t h i s f i l e . The program i s then terminated. QUIT In the event that the configuration i s saved i n a scratch f i l e because the user does not have a v a i l a b l e s u f f i c i e n t permanent f i l e space, the user should, once SYSREC has terminated, e i t h e r destroy s u f f i c i e n t of h i s e x i s t i n g f i l e s to provide permanent f i l e space into which the scratch f i l e may be copied, or copy the scratch f i l e onto tape. I f the user creates any f i l e s , by himself, which are to be used as save f i l e s , such f i l e s must be of sequential type without line numbers . Otherwise SYSREC w i l l be unable to re-read the saved record. Users are strongly recommended to keep backup records of a l l 'saved' f i l e s so that, i n the event of system f a i l u r e , only the current run w i l l be l o s t . Name: Purpose: Prototype: Use: 1.25 ROUTE to determine i f there i s a s i g n a l route between two terminal boards ROUTE tbnamel[(startpinno.)] AND tbname2[(startpinno.)] DIMEN=sigdim [CODE=codevalue] tbnamel. tbname2 are the names of the terminal boards between which the route i s to be determined startpinno. i s a terminal board p i n number for the associated terminal board s p e c i f y i n g the f i r s t of sigdim consecutive pins to which the s i g n a l i s to run. Default i s s t a r t p i n n o . = f i f s t of sigdim consecutive pins not yet carr y i n g a s i g n a l . sigdim i s a number representing the dimension of the s i g n a l to be routed (ie the number of l i n e s required within one cable to carry the signal) codevalue i s a two-digit number i n d i c a t i n g that t h i s s i g n a l route may run along only these cables having code values equal to codevalue. Default i s CODE=00. This command i s used to determine whether or not there i s a s i g n a l route of s p e c i f i e d dimension and type between two terminal boards. Unlike the PUT command, no s i g n a l i s a c t u a l l y i n s t a l l e d . 1.26 Effect: An attempt i s made to determine a route between the given terminal boards using the minimum path algorithm. Insufficient free terminal board pins or cable lines within a cable result in that terminal board or cable being discarded from consideration as a possible element of the signal route. Should a cable code and the given code value not match, that cable i s also discarded from consideration. (See Appendix B concerning the minimum path algorithm and i t s operation.) Examples: ROUTE TBI AND TB2 DIM=10 CODE=04 \ RO BOARDl(lO) A BOARD2(40) DIM=6 CODE=90 1.27 Name: RUN Purpose: to create a cable and place It between two terminal . boards Prototype: RUN cname(no.lines) BETWEEN tbnamel[(startpinno.)] AND tbname2[(startpinno.)] LENGTH=cablelength [CODE=codevalue] [DESC='description'] cname i s the name assigned to the cable being connected to the specified terminal boards no.lines i s the number of lines assigned to the cable. tbnamel, tbname2 are the names of the terminal boards between which the cable i s placed startpinno. i s a terminal board pin number specifying the f i r s t of no.lines consecutive pins to which to which the lines of the cable are to be consecutively attached. Default i s startpittno.=first of no.lines consecutive pins not yet attached to a cable. cablelength i s a number representing the length of the . . cable running between the terminal boards. Units are arbitrary. codevalue i s a two-digit number setting the coded value for cname. This value i s used to ensure similarity of code types when routing signals. Default i s CODE=00. description is any descriptive phrase about the cable. It may not contain, embedded blanks, or minus signs. Use: To create.and place a named cable between certain pins of two terminal boards. 1.28 The cable named Is placed as follows between the two terminal boards; starting with startpinno. (defaulted or otherwise) for each terminal board the lines of the cable beginning with line 1 are attached consecutively to each terminal board u n t i l a l l cable lines are attached. If there are insufficient available pins on either terminal board no connection of any line or pin is made and reference to criame i s not generated. Cablelength i s taken to be the absolute length between y the two terminal boards for purposes of minimum path routing. Any cable(s) subsequently placed between tbnamel and tbname2 w i l l have their lengths defaulted to cablelength. RUN CABLEl(lO) BETWEEN TBI AND TB2 LENGTH=10 RUN CIOO(IOO) B TBN1(10) A TBN2(50) LE=100 CODE-01 RUN Cl(4) B B0ARD1 AND BOARD2(10) LE=31 CODE=99 DESC='A CABLE DESCRIPTION' 1.29 Name: Purpose: Prototype: < Use: E f f e c t : Note 1: Examples: SET to a l t e r the maximum possible number of terminal boards or cables. SET ("TB=totaltbs "\ 1 CA=totalcabs I t o t a l t b s i s a number representing the maximum number of terminal boards desired totalcabs i s a number representing the maximum number of cables desired. I n i t i a l l y , SYSREC allows the d e f i n i t i o n of a maximum of 100 terminal boards, and 100' cables ( t h i s includes cables which are defined and then l a t e r deleted v i a DISCONN) The SET command i s a means of a l t e r i n g these i n i t i a l maximum element r e s t r i c t i o n s . (The new maximum number(s) must be greater than the number of terminal boards or cables currently defined.) The maximum number of terminal boards or cables permitted i s a l t e r e d as s p e c i f i e d . Due to i n t e r n a l processing considerations i s s u i n g the SET command r e s u l t s i n program termination once a maxi-mum element count has been a l t e r e d . (See QUIT command re termination events). I f the user wishes to continue a f t e r i s s u i n g SET he must r e s t a r t the program i n the continuation mode. SET TB=200 SET CA=1000 1.30 Name: SUMMARY Purpose: to obtain summarized output describing the current configuration Prototype: SUI Use: SUMMARY f SIGNALS={ s n a m e} CABLES" cname tbname * ] sname i s the name of a s i g n a l cname i s the name of a cable 1 tbname i s the name of a terminal board *_ i n d i c a t e s that a l l the currently defined elements within a class (ie terminal boards, cables, signals) are to be summarized. To obtain summaries of i n d i v i d u a l s i g n a l s , a l l s i g n a l s , i n d i v i d u a l cables, a l l cables, i n d i v i d u a l terminal boards, a l l terminal boards or a l l s i g n a l s , cables and terminal boards. PRINT=LONG indicates that terminal board summaries are to include the current status of each i n d i v i d u a l p i n . PRINT=SHORT suppresses t h i s i n d i v i d u a l p i n synopsis. The default i s PRINT=SHORT. Specifying ALL=generates summaries of a l l terminal boards, followed by summaries of a l l cables, followed by summaries of a l l s i g n a l s . Formats and explanations of output generated by t h i s command are given i n Section 3. J 1.31 Effect: Obvious Examples: SUMMARY SI=SIG1 SUMMARY TB=* PRINT=LONG SU ALL= PR=L . 1.32 Name: TRACE Purpose: to trace a s i g n a l or to summarize the status of an i n d i v i d u a l cable l i n e or an i n d i v i d u a l terminal board p i n . Prototype: TRACE Use: E f f e c t : Examples: SIGNAL=sname CABLE=cname(lineno. TB=-tbname (pinno.) sname i s the name of a s i g n a l . cname i s the name of a cable. lineno. i s the number of a l i n e i n cname which i s to be summarized tbname i s the name of a terminal board pinno. i s the number of a p i n ort tbrtame which i s to be summarized. To obtain a d e t a i l e d trace of a s i g n a l route or summaries of i n d i v i d u a l cable l i n e s or terminal board p i n s . For-mats and explanations of output generated by t h i s command are given i n Section 3. Obvious TRACE SI=SIGNAL2 TR CA=CAB1(100) 1.33 Name: WEIGHT Purpose: to a l t e r the weight value assigned to a terminal board. Prototype: WEIGHT tbname(weightvalue) tbname i s the name of a terminal board whose weight value i s to be changed. weightvalue i s a number representing the new weight value assigned to the terminal board. Use: To define an i n i t i a l weight value f o r a terminal board or to redefine a current weight value. Weight values are considered by the minimum path algorithm. (See Appendix B concerning minimum path algorithm and i t s operation). E f f e c t : weightvalue becomes the weight value f o r the terminal board r e p l a c i n g the previous weight value. Examples: WEIGHT TBN1(100) WE TB2(0) 1.34 Section 3: OUTPUT 3.1 Output from SYSREC Commands Output i s generated i n response to the commands LIST, SUMMARY and TRACE. This section describes, by means of examples, the format of output produced by each command and the meaning of such output. 3.1.1 LIST output The LIST command i s used to obtain a l i s t i n g of the names of a l l c u r r e n t l y defined s i g n a l s , cables or terminal boards. Thus i s s u i n g the command LIST SIGNALS might produce the output LIST OF SIGNALS FOLLOWS SIGNAL SIG2 CONTSIG S10112 ABCSIG . '• Similar output w i l l be generated by LIST CABLES or LIST TBS. I f there are no elements within the class s p e c i f i e d , an i n d i c a t i o n to that e f f e c t w i l l be made. 3.1.2 SUMMARY Output The summary command i s used to obtain summarized status information about s i g n a l s , cables, or terminal boards. Summaries may be generated f o r i n d i v i d u a l elements within the classes of si g n a l s , cables, or terminal boards or f o r a l l elements w i t h i n a cla s s (see 2.3 SUMMARY Command). What i s described here i s the 1.35 summarized output f o r i n d i v i d u a l items within a c l a s s . T o t a l class summaries are composed of the summaries of a l l items wit h i n that c l a s s (Void classes are indicated as such). For a s i g n a l summary, the command SUMMARY SIG=SIGNAL10 might produce the output SUMMARY:SIGNAL=SIGNAL10 THIS SIGNAL IS A TEMPERATURE MONITOR DIM=50 LENGTH=1414 . DATE=AUG21/70 The f i r s t l i n e of output serves to i d e n t i f y that which i s being summarized, i n t h i s case a s i g n a l l a b e l l e d SIGNAL10. Following t h i s i s the d e s c r i p t i v e phrase associated with t h i s s i g n a l ( i f any). Further i n d i c a t i o n s are that the dimension or width of the s i g n a l i s 50 l i n e s ; the t o t a l route length f o r the s i g n a l i s 1414 u n i t s ; the date on which the s i g n a l was l a s t modified (or i n i t i a l l y defined i f i t has not yet been EXTENDED) was August 21, 1970. For a cable summary, the command SUMMARY CA=CAB might produce SUMMARY: CABLE=CAB THIS IS A POWER SUPPLY CABLE NO. LINES=2000 NO. LINES FREE=500 LENGTH=375 C0DE=01 CONNECTS TB-TB100 PINS=l-2000 AND TB=TB101 PINS=2001-4000 1.36 The f i r s t l i n e affirms the intent of the summary followed by the de s c r i p t i v e phrase attached to this cable ( i f any). Further i n d i c a t i o n s are that the cable has a t o t a l of 2000 l i n e s , 500 of which are curr e n t l y unoccupied by a s i g n a l ; the length of the cable i s 375 u n i t s ; the code value of the cable i s 01; the cable runs between pins 1 to 2000 of terminal board TB100 and pins 2001 to 4000 of terminal board TB101. A terminal board summary, requested by SUMMARY TB=TBN1 PR=L might produce SUMMARY: TB=TBN1 LOCATION PI FLOOR 2 NO. PINS=6 NO. PINS FREE=»2 WEIGHT=100 PIN NO. ATTACHED CABLE: LINE NO. SIG CARRIED JUMPERS TO DATE 1 CABL1: 1 SIG1 3 Aug21/70 2 CABL1: 2 3 CAB100: 1 . SIG1 1 Aug21/70 4 C1001: 1 SGNALA Augl6/70 5 *FREE* 6 *FREE* Again the f i r s t two l i n e s of output confirm the i n t e n t of the summary and note the de s c r i p t i v e phrase attached to t h i s terminal board ( i f any). Following t h i s , i t i s stated that the terminal board has a t o t a l of s i x pins, two of which are unattached to a cable (or cables) and the current weight value of th i s terminal board i s 100. I f PRINT=SHORT had been s p e c i f i e d i n the command, or i f the PRINT keyword had been 1.37 omitted, the summary would terminate at t h i s point. For t h i s example however, PRINT=LONG has been s p e c i f i e d and the remainder of the summary i s a r e s u l t of such a s p e c i f i c a t i o n . For the above example, the further i n d i c a t i o n s are that 1) p i n 1 i s attached to l i n e 1 of a cable, CABL1, part ( i n t h i s case a l l ) of a s i g n a l l a b e l l e d SIG1 runs through t h i s p i n , and cable l i n e ; the s i g n a l was most recently modified (or defined i f not yet EXTENDed) on the date given; there i s a jumper l i n e from p i n 1 to p i n 3. 2) p i n 2 i s attached to l i n e 2 of the cable, CABL1; no s i g n a l flows through t h i s pin and there are no jumpers on the p i n . 3) p i n 3 i s attached to l i n e 1 of a cable CAB100; t h i s p i n i s jumpered to p i n 1 and thus c a r r i e s the same s i g n a l (or part s i g n a l ) as does p i n 1. 4) p i n 4 i s attached to l i n e 1 of a cable C1001; a s i g n a l l a b e l l e d SGNALA runs through t h i s p i n and the p i n has no jumpers. 5) pins 5 and 6 are as yet not connected to a cable(s) and are thus a v a i l a b l e to accommodate such connections. 3.1.3 TRACE Output The TRACE command i s used to trace a s i g n a l route or to obtain information about the status of an i n d i v i d u a l cable l i n e or terminal board p i n . N A s i g n a l trace issued as TRACE SI=SIGNAL1 1.38 might produce TRACE: SIGNAL=SIGNAL1 DIM=2 DATE=AUG 21/70 TBA : 1 TO TBB : 1 (Cl:l) SL=0 TBB : 1 TO TBB : 7 TO TBC : 3 (C3:l) SL=1 TBC : 3 TO TBC : 7 TO TBD : 1 (C4:l) SL=2 (In the following explanation, pin numbers refer to the f i r s t of, in this case, DIM=2 pins through which the signal runs. The same applies to cable line numbers). The f i r s t line of output identifies the signal being traced, i t s dimension, and the date on which i t was last modi-fied. The following lines indicate that the signal runs from pin 1 on a terminal board, TBA, to pin 1 on a terminal board TBB via line 1 in a cable labelled Cl; between pins 1 and 7 on TBB (via a jumper) and then from pin 7 on TBB to pin 3 on TBC via line 1 of cable C3; between pins 3 and 7 on TBC (via a jumper) and then from pin 7 on TBC to pin 1 on TBD via line 1 of cable C4. The SL=X i s a reference label that may be attached to extensions of a signal for identification purposes. The following figure illustrates the signal route for the preceeding example. 1.39 Figure 1 The f i r s t and l a s t terminal boards given i n the output l i s t ( i n t h i s case TBA and TBD) may not i n a l l cases, r e f e r to the end points of the s i g n a l route. The status of pin 1 on cable CAB1 may be obtained by using TRACE CAB1(1) perhaps generating the output TRACE: CABLE=CAB1 LINE=1 CONNECTS TBrTBl PIN=10 AND TB=TB0ARD4 PIN=4 SIGNAL CARRIED=SIGNAL1 SL=41 1.40 The f i r s t output l i n e affirms the i n t e n t of the trace while succeed-ing l i n e s i n d i c a t e that the cable l i n e connects p i n 10 on terminal board TBI with p i n 4 on terminal board TB0ARD4 and that the name of the s i g n a l c a r r i e d by t h i s cable l i n e and the sub l a b e l r e l a t i n g to t h i s portion of the s i g n a l route are SIGNAL1 and 41 r e s p e c t i v e l y . I f the cable l i n e c a r r i e s no s i g n a l , i n d i c a t i o n . t o that e f f e c t i s made. For the status of a terminal board p i n , TRACE TB=TBN1(10) might produce: TRACE:TB=TBN1 PIN=10 CONNECTED CABLE=CABL100 LINE=10 SIGNAL CARRIED=S1 SL=0 JUMPERED TO PIN(S) 20, 30 The f i r s t l i n e affirms the i n t e n t of the trace while the second l i n e i ndicates that t h i s p i n i s connected to l i n e 10 of a cable l a b e l l e d CABL100. The t h i r d l i n e i n d i c a t e s the name of a s i g n a l running through t h i s p i n and the s i g n a l ' s sublabel at t h i s point. F i n a l l y , any pins jumpered to on t h i s terminal board are l i s t e d . I f there i s currently no cable attached to t h i s p i n an i n d i c a t i o n i s so made and the trace i s terminated. I f there i s a cable l i n e attached to the p i n but no s i g n a l through the p i n or no jumpers from the p i n i n d i c a t i o n s are so made. 3.2 Output from Err o r Messages In ad d i t i o n to data generated by the submission of e x p l i c i t com-mands, SYSREC also outputs e r r o r messages i n d i c a t i n g the detection of i n v a l i d operations. Such messages and t h e i r meanings are described i n Appendix A. Ml Section 4: PROGRAM EXECUTION This chapter describes general startup and termination procedures fo r SYSREC. In addition, s p e c i f i c d e t a i l s are provided of how to i n i t i a t e execution of SYSREC operating under MTS. 4.1 General Startup/Termination SYSREC may be st a r t e d i n one of two modes; i n i t i a l mode or con-t i n u a t i o n mode. I n i t i a l mode means that a new network record i s about to be created. Continuation mode indicates that a network record previously created and saved by SYSREC i s about to be modified i n some fashion. The s t a r t i n g mode f o r SYSREC i s determined by means of a parameter f i e l d passed to the program by the user when he i n i t i a t e s execution. I f the parameter f i e l d i s the character s t r i n g INITIAL, execution i s started i n i n i t i a l mode. I f the parameter f i e l d i s the s t r i n g CONTINUE, or i f no parameter f i e l d i s given, execution begins i n continuation mode. If the startup mode i s continuation, then the user must supply reference to a f i l e or data set that contains a net-work configuration previously created and saved by SYSREC. SYSREC execution i s normally terminated by the QUIT command. This command saves the current configuration i n a f i l e s p e c i f i e d by the user. When the record i s completely saved, the program terminates. 4.2 Interrupt Procedure SYSREC i s designed to accept attention i n t e r r u p t s from a remote terminal. In the event that such an i n t e r r u p t i s given while operations r e l a t i n g to a submitted command are i n progress, such operations are immediately terminated regardless of whether or not processing requested by the command i s complete. The message 1.42 SYSREC ATTENTION INTERRUPT i s issued, s i g n i f y i n g the i n t e r r u p t , and SYSREC i s readied to accept a subsequent command. 1 Since processing terminated by an attention i n t e r r u p t i s NOT r e s t a r t e d once the in t e r r u p t has been accepted, care must be taken not to i n t e r r u p t the processing associated with c e r t a i n commands. Commands which must not be interrupted are those which involve the completion of i n t e r n a l data tables. To i n t e r r u p t such commands could r e s u l t i n incomplete data structures thus causing the program to f a i l at a l a t e r stage. I t i s recommended that only the LIST, SUMMARY and TRACE commands be interrupted. In f a c t , the i n t e r r u p t f a c i l i t y was implemented s o l e l y as a means of prematurely terminating output l i s t s . Any other commands which the user might deem i t neces-sary to i n t e r r u p t have associated with them counter-commands (or the same command i t s e l f ) enabling a re v e r s a l of ac t i o n (eg CONNECT, DISCONN). The exceptions to the l a t t e r statement are the QUIT and SET commands whose e f f e c t s are i r r e v e r s i b l e except f o r r e s t a r t i n g the program. In no circumstances should the QUIT command be interrupted. 4.3 Startup Requirements under MTS This section deals with the i n i t i a t i o n of SYSREC execution under MTS. Readers of t h i s material are assumed to be f a m i l i a r with the MTS command languages and MTS f i l e s t r u ctures. Having s u c c e s s f u l l y signed onto the system, SYSREC may be"started i n the i n i t i a l mode by i s s u i n g $RUN SYSREC PAR=INITIAL or i n the continuation mode by i s s u i n g v 1.43 $RUN SYSREC 5 = i n f i l e [PAR=CONTINUE] i n f i l e i s the name of a f i l e containing a previously created SYSREC record (ie a f i l e name previously s p e c i f i e d i n response to the QUIT (or SET) command). Should the PAR= s p e c i f i c a t i o n be i n c o r r e c t , or, i n the case of continuation mode, the reference to l o g i c a l I/O un i t 5 be missing or i n c o r r e c t , a message w i l l be issued and the user w i l l have to repeat the startup procedure. The p r e f i x character s l a s h (/) w i l l appear when SYSREC i s ready to accept commands. 1.44 BIBLIOGRAPHY 1. Dijkstra, E. W., "A Note on Two Problems in Connexion with Graphs", Numerische Mathematik 1, 269-271 (1959). 2. Dreyfus, S. E., "An Appraisal of Some Shortest-Path Algorithms", Operations Research 17, 395-412 (1969). 3. IBM System/360 Operating System: Assembler Language, Form C28-6514-5. 4. IBM System/360 Principles of Operation, Form A22-6821-7. 5. Nicholson, T. A. J., "Finding the Shortest Route Between Two Points in a Network", Computer Journal 9, 275-280 (1966). 6. Walsh, D., A Guide for Software Documentation, Inter-ACT, New York, N.Y. (1969). 7. Whiting, P. D. and J. A. H i l l i e r , "A Method for Finding the Shortest Route through a Road Network", Operational Research Quarterly 11, 37-40 (1960). I.A.I APPENDIX A Program Generated Messages (Messages are l i s t e d i n alph a b e t i c a l order) Message BLANK LINE-LINE IGNORED CABLE ALREADY EXISTS CABLE CODES NOT SIMILAR CABLE DOES NOT EXIST CABLE LENGTH MUST BE :> ZERO Explanation A blank l i n e was entered; i t has been ignored The cable name has been previously assigned to another cable The requested s i g n a l code d i f f e r s from a cable code type A given cable name cannot be found; the cable has not yet been RUN The cable length given i n a RUN command i s zero; i t must be greater than zero CABLE LINES EXCEED FREE TB PINS A terminal board does not possess s u f f i c i e n t consecutive free pins to permit i t s connection to the s p e c i -f i e d cable CABLE NAME LIST OVERFLOW CANNOT DESTROY THIS FILE CODE VALUE EXCEEDS 99 COMMAND CANCELLED CONFLICTING KWS GIVEN DESCRIPTION OMITTED ERROR IN GIVEN FILE NAME The maximum allowable number of cables has already been run; use SET command to a l t e r the l i s t s i z e SYSREC cannot destroy the f i l e as requested; enter a new f i l e name Code values must be i n the range 00-99 A reply other than OK has been given i n response to a program query Contradictory keywords are given i n the same command The DESC keyword has been omitted from the DESCRIP command or a des c r i p t i o n of zero length has been given The given f i l e name contains an i n v a l i d character e t c . ; enter a new name I.A.2 GIVEN PIN DOESNT LEAD TO TBI GIVEN PIN DOESNT LEAD TO TB2 GIVEN PINS DO NOT CONNECT INCOMPLETE COMMAND INPUT FILE-NAME NOT FOUND INPUT FILE-TYPE NOT SEQUENTIAL INSUFF FREE LINES(CONNECT) INSUFF FREE LINES(EXTEND) INSUFFICIENT FREE LINES . INSUFFICIENT LINES INSUFFICIENT PINS INVALID ( ENCOUNTERED DIRECT=ON has been s p e c i f i e d i n the EXTEND command; the s p e c i f i e d p i n on the 'to' board does not lead d i r e c t l y to the 'from' board DIRECT=ON has been s p e c i f i e d i n the EXTEND command; the p i n given on the 'from' board doesn't lead d i r e c t l y to the 'to* board DIRECT=ON has been s p e c i f i e d i n the EXTEND command; the s p e c i f i e d p i n numbers do not connect the terminal boards d i r e c t l y The command given i s incomplete: one or more expected parameters i s missing SYSREC i s being started i n continuation mode but the f i l e given as containing an e x i s t i n g configuration cannot be found The f i l e given as containing an e x i s t i n g record i s not of sequential type; SYSREC reads only sequential f i l e s The cable s p e c i f i e d i n a CONNECT command does not possess s u f f i c i e n t free l i n e s to accomodate t h i s s i g n a l width DIRECTON has been s p e c i f i e d i n the EXTEND command; there are i n s u f f i c i e n t free l i n e s to accomodate the requested extension More cable l i n e s than are currently free have been requested A l i n e number has been s p e c i f i e d ; t h i s i s r e s u l t i n g i n the attempted use of a l i n e which i s not defined A terminal board p i n number has been s p e c i f i e d ; t h i s r e s u l t s i n the r e -quested use of a non existant p i n A l e f t parenthesis has been unexpectedly encountered; an unwanted parameter has been given I.A.3 INVALID ALPHA SYMBOL INVALID CABLE CONNECTION INVALID CHARACTER ENCOUNTERED INVALID CHARACTER IN NUMBER INVALID COMMAND INVALID KW FOR THIS COMMAND INVALID NUMERIC SYMBOL INVALID PAR= SPECIFICATION INVALID PARAMETER INVALID PHRASE DELIMITER LENGTH NOT SPECIFIED MISSING ( OR ) MISSING - SIGN IN KW PARAMETER MISSING BLANK OR EOL CHAR MISSING QUOTE MARK An i n v a l i d alphanumeric symbol has been detected; the symbol probably begins with other than A-Z Cables cannot be RUN from and to the same terminal board A character other than those accepted by SYSREC has been encountered A non-numeric character has been detected as part of a number Given command i s i l l e g a l f o r SYSREC An i n v a l i d keyword has been given with a p a r t i c u l a r command An i n v a l i d number has been given; the number does not begin with 0-9 During the startup procedure an i n v a l i d argument has been given i n the PAR f i e l d of the MTS 'RUN' command A given parameter i s i n v a l i d f o r the command(LIST) or the argument of a keyword i s invalid(EXTEND,SUMMARY) Eit h e r the del i m i t e r AND(or A) or the del i m i t e r BETWEEN(or B) i s not given as required The LENGTH keyword has been omitted from the RUN command; i t i s mandatory A l e f t or r i g h t parenthesis has been omitted; a required parameter has-been forgotten The equals sign(=) i s missing from a keyword parameter A blank has not been found where expected or the l a s t character of a command i s not as expected One or both quote marks required to del i m i t a d e s c r i p t i o n f i e l d i s missing I.A.4 MORE THAN NINE EXTENSIONS MORE THAN 3 I/P LINES NO CABLE CONNECTED TO THIS PIN NO CABLES CONNECTED TO THIS TB NUMBER EXCEEDS 32767 PIN NO. EXCEEDS TOTAL PINS PINS CONNECTED TO TWO CABLES PINS LESS THAN CURRENT PINS REQD LINE/PIN ALREADY ALLOCATED REQUESTED MAXIMUM TOO SMALL REQUESTED ROUTE IMPOSSIBLE ROUTING SUCCESSFUL SIGNAL ALREADY EXISTS SIGNAL DOES NOT EXIST SIGNAL NOT ROUTED THRU HERE A maximum of nine a l t e r a t i o n s i s allowed f o r any s i n g l e terminal board The maximum number of three input l i n e s has been exceeded A p i n number has been given(or implied) which i s not connected to a cable l i n e A terminal board has been named to which no cables are attached A number has been s p e c i f i e d which exceeds the allowable maximum(32767) A p i n number has been given which i s greater than the highest numbered pin c urrently on the board A p i n number has been s p e c i f i e d which would cause a sig n a l ' s width to be s p l i t over two cables In the ALTER command the.number of pins to be set i s le s s than the current number of pins on that board . A.pin or l i n e currently carrying a si g n a l has been requested to carry another s i g n a l The number of terminal scards or cables being defined by the SET command i s l e s s than the present number of such elements A s i g n a l cannot be s u c c e s s f u l l y routed as requested The ROUTE command has determined that the s i g n a l route requested i s f e a s i b l e The s i g n a l name has been previously assigned to another s i g n a l The given s i g n a l name cannot be found; i t has not yet been PUT The s i g n a l named does not pass through the f i r s t terminal board name; an ex-tension cannot be s t a r t e d here I.A.5 SYMBOL EXCEEDS 8 CHARACTERS TB NAME LIST OVERFLOW TBS NOT DIRECTLY CONNECTED TERMINAL BOARD ALREADY EXISTS TERMINAL BOARD DOES NOT EXIST TOO MANY JUMPERS REQUIRED ZERO DIMENSION SPECIFIED ZERO LINES SPECIFIED ZERO PINS SPECIFIED An alphabetic symbol exceeds eight characters The maximum allowable number of termi-n a l boards has already been CREATEd; use SET command to a l t e r the l i s t s i z e DIRECTION has been s p e c i f i e d i n the EXTEND command but the terminal boards are not d i r e c t l y connected The terminal board name has been previously assigned to another terminal board ~ A given terminal board name cannot be found; i t has yet to be CREATEd A request has been made which w i l l necessitate assigning more than two jumper l i n e s to a s i n g l e p i n The dimension(width) of a s i g n a l has been given as zero; i t must be greater than zero The number of cable l i n e s s p e c i f i e d i n a RUN command i s zero; i t must be greater than zero The number of terminal board pins s p e c i f i e d i n a CREATE or ALTER command i s zero; the number must be greater than zero I.B.I APPENDIX B The Minimum Path Algorithm arid i t s Operation SYSREC uses a minimum path algorithm (MPA) to e f f e c t the routing of s i g n a l s other than by e x p l i c i t means. This appendix discusses the general nature of th i s algorithm and the way i n which i t i s implemented by SYSREC. B . l The Algorithm The algorithm adopted i s due to D i j k s t r a [1] and Whiting and H i l l i e r [7] and i s implemented i n the form suggested by Dreyfus [2]. This p a r t i c u l a r algorithm was chosen over others considered because: (1) f o r the given problem, t h i s algorithm i s more e f f i c i e n t than any others encountered (see Dreyfus). (2) the algorithm i s e a s i l y programmed. To i l l u s t r a t e the algorithm, consider the following network of nodes and paths. C i r c l e d numbers on the paths i n d i c a t e the path lengths. Figure 2 I.B.2 The object i s to find the path of shortest route from node A to node F. The algorithm operates basically by assigning labels to nbdes and then using the value of these labels to determine the correct path. Two types of labels are distinguished, permanent labels and temporary labels. For the above example, the f i r s t step i s to assign labels to each node such that node A has a permanent label of 0 and a l l other nodes have temporary labels ». Thus to start we have Node Type A P B T C T D T E T F T Next, a l l paths eminating from node A are considered. For each such path the path length from node A to whichever node the path runs is compared to the current temporary label of that node (°° i n each case). Since the value of each path length from node A (A-B=5, A-C=2, A-D=7) is less than the current temporary label at each of the nodes to which A i s connected, each of these temporary labels i s replaced by it s corresponding lesser value. Thus Node Type Value A P 0 B T 5 C T 2 D T 7 E T « Value 0 OO CO CO oo I.B.3 Having considered a l l paths from A, the smallest of the current set of temporary l a b e l s i s defined to be a permanent l a b e l g i v i n g : Node Type', - Value A P 0 B T 5 C P 2 D T 7 E T 0 0 F T °° Node C now replaces node A i n the above procedure and the algorithm cycles again g i v i n g : ( a f t e r having set the next permanent l a b e l ) Node Type Value A P 0 B P 5 C P 2 D T 7 E T CO F T CO (Note that the temporary l a b e l at node D remains 7 since i t i s le s s than the path A-C-D of length 8.) Node B now becomes the current node. The i t e r a t i o n s continue u n t i l f i n a l l y node F has been perma-nently l a b e l l e d , at which p i n t , the minimum length path from node A to node F can be determined. The remaining sequence of steps leading to the s o l u t i o n i s as follows: I.B.4 tfode Type Value Node Type Value Node Type Value A P 0 A P 0 A P 0 B P 5 B P 5 B P 5 C P 2 C P 2 C P 2 D P 6 D P 6 D P 6 E T 13 E P 8 E P 8 F T 00 F T 15 F P 12 By noting which node a permanently l a b e l l e d node was l a b e l l e d from, one can, s t a r t i n g from node F, determine the shortest route as A-B-D-E-F. The general procedure f o r t h i s algorithm i s : (1) permanently l a b e l the i n i t i a l node 0 and temporarily l a b e l a l l other nodes 0 0 (any large number). (2) f o r each path from the i n i t i a l node compare the sum of the permanent l a b e l at the i n i t i a l node and the path length with the temporary l a b e l at the node to which the path leads ( i f the path leads to a permanently l a b e l l e d node ignore that path). I f t h i s sum i s l e s s than the current temporary l a b e l at that node, replace t h i s temporary l a b e l by the above sum but s t i l l leaving i t a temporary l a b e l . (3) f i n d the smallest of a l l the temporary l a b e l s , l a b e l i t permanent and consider i t s associated node to be the i n i t i a l node. Go to step 2. (4) i f the terminal node becomes permanently l a b e l l e d - stop -a s o l u t i o n has been found. I.B.5 (5) i f at any point the smallest remaining temporary value equals 0 0 and the terminal node has not yet been permanently l a b e l l e d , no s o l u t i o n e x i s t s (the terminal node i s i n f a c t i s o l a t e d ) . B.2 Implementation of the MPA by SYSREC SYSREC implements the preceding algorithm by using as the path length between any two connected nodes (terminal boards): (1) the length of the cable(s) connecting the two terminal boards (Note that there i s at most 1 cable length between any two terminal boards) plus, (2) the weight f a c t o r associated with the n o n - i n i t i a l ( i n terms of the preceding section) terminal board. (Cable length i s determined from the LENGTH keyword of the RUN command while terminal board weight factors are determined from the WEIGHT keyword of the CREATE command or from the WEIGHT command.) An example may c l a r i f y t h i s : consider the following terminal boards and t h e i r weight f a c t o r s ; TBA weight f a c t o r =10 TBB " " = 20 ' TBC " " = 30 and these cables and t h e i r lengths C l length = 4 C2 " = 6 C3 " = 8 a l l of which form the following configuration I.B.6 Figure 3 Then the d i r e c t path length from TBA to TBB i s defined as: length of C l + weight f a c t o r of TBB = 4 + 20 = 24. The path length from TBA to TBB v i a TBC i s : length of C2 + weight f a c t o r of TBC + length of C3 + weight f a c t o r of TBB = 6 + 30 + 8 + 20 = 64. Therefore, by means of the WEIGHT command, the user may d i r e c t l y govern which terminal boards (and associated cables) are most l i k e l y to be a part of a p a r t i c u l a r minimum length s i g n a l route. For the routing of a p a r t i c u l a r s i g n a l , the conditions necessary f o r a cable (and therefore the terminal board(s) to which i t i s connected) to be considered a part of the tree which defines the set of possible paths for the s i g n a l are: (1) the cable must be of code type corresponding to the given s i g n a l code type, (2) the cable must have s u f f i c i e n t free consiecutive l i n e s to carry the complete width of the s i g n a l and (3) i t must be possible to supply s u f f i c i e n t jumper l i n e s to t h i s cable should the need a r i s e . For the implemented version of the MPA, a cable which contradicts e i t h e r (or both) of conditions (1) or (2) above w i l l be dropped from I.B.7 consideration as a possible path element and an i n d i c a t i v e message w i l l be issued to that e f f e c t . Thus, for example, i f the PUT command has been issued and messages subsequently appear i n d i c a t i n g c o n f l i c t i n g code types or i n s u f f i c i e n t cable l i n e s the inference should be that the MPA has excluded these cables as possible elements of the f i n a l route. I t may w e l l be the case that such messages are issued along with the DONE i n d i c a t i o n s . This denotes that the s i g n a l was succes-s f u l l y routed but that c e r t a i n cables were deleted as possible path elements during the routing procedure. I f (3) of the required condi-tions i s v i o l a t e d , an i n d i c a t i v e message w i l l be issued and the attempt at routing the s i g n a l i s terminated. The user must then determine at which point, more than two jumper l i n e s are required and e i t h e r route the s i g n a l e x p l i c i t l y around t h i s point or increase the weighting f a c t o r of the associated terminal board, thus causing the MPA to d i s t i n g u i s h a d i f f e r e n t path at t h i s point. One further problem occurs i n the MPA implementation and i t r e l a t e s to the s p e c i f i c a t i o n of pins on the end point terminal boards. Signals are routed from the terminal board f i r s t mentioned i n a command to the terminal board mentioned second. That i s , the algorithm takes as the i n i t i a l node the "from" terminal board and proceeds v i a i t e r a t i o n u n t i l the "to" terminal board i s permanently l a b e l l e d . I f pins are s p e c i f i e d f o r the "from" terminal board they must be s u f f i c i e n t i n number to carry the s i g n a l width and they must be connected to a cable of the correct code type. Otherwise, the s i g n a l -is deemed impossible to route as requested and i n d i c a t i v e messages are generated. The same applies to the " t o " terminal board I.B.8 i f pins are s p e c i f i e d f o r i t . In routing a s i g n a l between s p e c i f i e d pins on two terminal boards i t may be the case that the route deter-mined i s i n f a c t not the minimal length route between the terminal boards but rather the minimal length route between the specified pins on the terminal boards. That i s , since pins have been s p e c i f i e d through which the s i g n a l i s to run, the route chosen may be greater i n length than i f such pins had not been s p e c i f i e d . However, whether pins have been s p e c i f i e d or not, the s u c c e s s f u l routing of a s i g n a l by the MPA guarantees that the path so determined i s the minimal length path s a t i s f y i n g the given r e s t r i c t i o n s . I . C . I APPENDIX C SYSREC Command Prototypes 1. ALTER 2. CONNECT 3. CREATE 4. DESCRIP 5. DISCONN 6. . EXTEND 7. LIST 8. MTS 9. PUT 10. QUIT 11. - ROUTE 12. RUN tbname(totalpins) cname[(startlineno.)] sname(sigdim) [ CQDE=° co devalue ] [DESC='description' ] tbname(no.pins) [WEIGHT=weightvalue] [DESC='description'] CABLE=cname "\ SIGNAL=sname r | TB=tbname \ SIGNAL=sname1 CABLE=cname \ DESC='description' sname BETWEEN tbnamel[(startpinno.)] AND tbname2[(startpinno.)] [DIRECT" | ON 1 ] I 0FF1 [SL=sublabel] ' SIGNALS| CABLES \ TBS J sname(sigdim) BETWEEN tbnamel[(startpinno.)] AND tbname2[(startpinno.)] [C0DE=codevalue] [DESC='description'] tbnamel[(startpinno.)] AND tbname2[(startpinno.)] DIMEN=sigdim [CODE=codevalue] cname (no.lines) BETWEEN tbnamel[(startpinno.)] AND tbname2[(startpinno.)] LENGTH=cablelength [CODE=codevalue] [DESC='description'] 13. SET 14. SUMMARY 15. TRACE I TB=totaltbs 1 \ CA=totalcables J SIGNALS= sname * CABLES= cname * r TB= tbname [PRINT=f LONG \ ] SHORT I ^ ALL= [PRINT=fLONG \ ] \SHORT] ' SIGNAL=sname \ CABLE=cname(lineno.) " TB=tbname(pinno.) 16. WEIGHT tbname (weightvalue) SYSREC INTERNAL LOGIC MANUAL Barry H. Gray Department of Computer Science Un i v e r s i t y of B r i t i s h Columbia A p r i l , 1971 II. i TABLE OF CONTENTS Page Preface II «1 Section 1 Program Logic - overview II.2 1.1 Introduction 1.2 CABLE csect H-2 1.3 WORKER csect 1 1 • 5 Section 2 Program Logic - detailed II.8 2.1 Section organization II.8 2.2 CABLE csect - detail H.8 2.2.1 Routines H « 8 2.2.2 Tables 11.10 2.3 The Data Base 11.13 2.4 WORKER csect - detail 11.17 2.4.1 Routines 11.17 2.4.2 Subroutines 11.20 Bibliography 11.23 Appendix A Flowcharts II.A.1 Appendix B Reference to SYSREC source l i s t i n g II.B.l II.1 SYSREC INTERNAL LOGIC MANUAL  Preface This manual describes the i n t e r n a l operation and f u n c t i o n a l c a p a b i l i t i e s of the SYSREC program. 1 I t i s intended f o r use by persons wishing to extend or modify the e x i s t i n g program implementation. P r e r e q u i s i t e s to the reading of t h i s manual include: (1) knowledge of material presented i n the SYSREC USER'S MANUAL. (2) b a s i c knowledge of the Michigan Terminal System (MTS). (3) knowledge of 360/Assembler Language. The manual i s organized i n t o two sections: Section 1 discusses SYSREC from a global point of view; Section 2 discusses the main routines and data structures employed i n SYSREC. In addit i o n appendices A and B provide respectively, flowcharts of the major routines and reference to a documented source l i s t i n g of the program. II.2 Section 1: PROGRAM LOGIC - OVERVIEW 1.1 Introduction From a global viewpoint, the SYSREC program i s divided into two logical phases: a command processing phase and a work phase. Summarily the command processing phase accepts SYSREC commands, checks for correct syntax, sets up parameter l i s t s and then, barring detec-tion of errors to this point, passes control to the work phase. The detection of an error in the command processing phase usually requires the reissuing of a command i n corrected form. The work phase executes the task defined by the issued command and i n so doing uses the para-meters passed from the command processing phase. Successful completion of the work phase causes control to pass back to the command processing phase thus enabling the program to accept the next input command. Error detection in the work phase has results dependent upon the error encountered but in general control passes, via an error exit, back to the command processing phase thus prematurely terminating the work phase. The above two phases are realized i n the program by two csects labelled CABLE and WORKER, representing the command processing and work phases respectively. 1.2 CABLE csect The CABLE csect i s that segment of SYSREC which processes SYSREC commands. This csect contains routines which: 1) read i n a logical input line. 2) scan an input line for invalid symbols. 3) collect alphanumeric and numeric symbols which have been delimited by preassigned characters. II.3 4) check the v a l i d i t y of a given command name. 5) process keywords and phrases associated with a given command. 6) check given commands f o r syntax e r r o r s . 7) set up parameter l i s t s i f necessary. 8) generate e r r o r messages. 9) pass c o n t r o l to the WORKER csect. The o v e r a l l flow of t h i s csect i s shown i n Figure 1. II.4 B input) determine command name Qy~^—<<id> ^"YES (to appropriate command routine) ALTER _ \f CORRECT command command " T " etc. T T WEIGHT command (interaction) get appropriate phrases and keywords f o r given command syntax e r r o r o r ssing parametei set up any required parameter l i s t s pass c o n t r o l to appropriate routine i n WORKER csect generate e r r o r message Figure 1 II.5 Thus, once the i n i t i a l input procedure i s complete and i t has been determined that the command name given does i n fa c t correspond to a SYSREC command, control passes to a routine corresponding to the command given. (In the program l i s t i n g , these routines are each l a b e l l e d i n the form XXCP where XX denotes the f i r s t two l e t t e r s of the corresponding command name. Thus ALTER ALCP, DISCONN DICP). These routines then c a l l upon those s p e c i f i c subroutines which are required to process the parameters and keywords associated with the given command. 1.3 WORKER csect The WORKER csect i s that phase of the SYSREC program i n which the task determined by an input command i s executed. Control i s passed to this csect from the CABLE csect. The WORKER csect contains routines which: 1) perform the functions defined by each SYSREC command. 2) perform minimum path routing. 3) read i n e x i s t i n g systems and write out the current system. 4) a l l o c a t e core to the SYSREC data structure. 5)_ f o r a given command, check the current data structure to ensure the task requested does not v i o l a t e any l i m i t a t i o n s . 6) scan and update the data s t r u c t u r e . 7) generate e r r o r messages. 8) pass co n t r o l back to the CABLE csect. The WORKER csect i s s i m i l a r to the CABLE csect i n organization i n that i t contains separate routines corresponding to each of the allowable SYSREC commands. Control i s passed to the appropriate one II.6 of these routines from the CABLE csect a f t e r the l a t t e r has determined the command name and established any required parameter l i s t s . Each of these separate routines i n the WORKER csect then c a l l s upon subroutines necessary to ef f e c t - t h e given command. Thus the o v e r a l l flow i s : c from CABLE csect common entry point i n WORKER csect (to appropriate routine) i r ALTER CONNECT etc. WEIGHT routine routine routine > > f yes -<^errors^> (int e r a c t i o n ) NO c a l l upon required subroutines common e x i t point to CABLE csect * generate message Figure 2 (usually) II.7 (In the program l i s t i n g , the routines corresponding to commands are each l a b e l l e d i n the form X X R where X X denotes the f i r s t two l e t t e r s of the command thus A L T E R A L R , C O N N E C T C O R ) . II.8 Section 2: PROGRAM LOGIC - DETAILED 2.1 Section Organization This section provides reference to the operation of the main routines/subroutines of the SYSREC program. In addition, the data base structure i s discussed from a fu n c t i o n a l standpoint. Section 2.2 of t h i s chapter d e t a i l s those routines and major data elements found i n the CABLE csect. Section 2.3 discusses the SYSREC data base and Section 2.4 describes the major routines of the WORKER csect and how they r e l a t e to the data base. I t i s intended that routine headings i n the SYSREC source l i s t i n g be read concurrently with the following sections. In p a r t i c u l a r , many of the l e s s e r sub-routines of.the WORKER csect are referenced only by the source l i s t i n g . 2.2 CABLE csect - d e t a i l 2.2.1 Routines A) CPROC Since both csects use the same base r e g i s t e r s , the values i n these bases must be reset upon each entry i n t o a csect. Program termination i s determined at t h i s point from the value of 'ENDSW'. Command names are distinguished here. B) LINE, GETLINE These routines together read a l o g i c a l input l i n e which i s composed of not more than three p h y s i c a l input l i n e s . C) GETNEXT, GETSYM These are low l e v e l routines which are used to return respec-t i v e l y a s i n g l e character, and a s i n g l e symbol to higher l e v e l routines. II.9 D) GETNAM GETTBS, GETKWS, GETNUM These routines are used to process various phrases, para-meters, and keywords associated with a given command name. They r e l y h e avily on the GETNEXT and GETSYM routines. GETKWS temporarily passes c o n t r o l to routines which process the values associated with a given keyword. These routines, GETNAM, GETTBS et c . are generally c a l l e d by a routine from (E). E) CRCP, ALCP, WECP, RUCP, PUCP, EXCP, ROCP, COCP, DICP, TRCP, SUCP, DECP, LICP, MTCP, SECP, QUCP. These routines correspond one f o r one with permissable SYSREC commands. The f i r s t two l e t t e r s of each routine are the same as the f i r s t two l e t t e r s of the command to which i t corresponds. When a v a l i d SYSREC command has been distinguished c o n t r o l passes to the corresponding routine ( ie one of the above). This routine, w i l l then c a l l lower l e v e l routines (see se c t i o n D above) to c o l l e c t the parameters associated with the s p e c i f i c command ( i f any). When a l l parameters associated with a given command have been determined, the routine passes c o n t r o l , i n d i r e c t l y , to an associated routine i n the WORKER csect. An exception to t h i s l a s t statement i s the MTCP routine which has no counterpart i n the WORKER csect. F) GETWGT, GETSL, GETCODE, GETDIM, GETLEN, GETDIR, GETDESC, GETSN, GETCN, GETTBN, ALL, PRTSIZE, TBSIZ, CVSIZ These routines are temporarily passed c o n t r o l by GETKWS. They process the values corresponding to keyword parameters. When a p a r t i c u l a r keyword value has been processed, c o n t r o l passes back to GETKWS. 11.10 G) MESSAGE This routine p r i n t s a l l messages generated by t h i s csect. I t i s c a l l e d v i a any routine i n t h i s csect which has detected the need f o r a message and returns c o n t r o l to that routine when the message has been printed. There i s a s i m i l a r routine i n the WORKER csect. Messages are r e f e r r e d to by number when they are to be generated. The message number and the c a l l i n g sequence to t h i s routine are components of the NOTE macro d e f i n i t i o n . 2.2.2 Tables A) COMTAB This i s a table of v a l i d SYSREC commands. Since only the f i r s t two l e t t e r s of a command are required to d i s t i n g u i s h i t from a l l other commands, only these two l e t t e r s are needed i n t h i s t a b l e . The rou-t i n e to which c o n t r o l should pass given a match between an inputted command and one of the v a l i d commands follows the command name d e f i -n i t i o n . B) CHARTAB This i s a table of o f f s e t s corresponding to those EBCDIC symbols allowed by SYSREC. This table i s used by the GETSYM routine. C) CRETAB, RUNTAB, PUTTAB, EXTAB, ROTAB, CONTAB,. DISTAB, TRTAB, SUMTAB, DESTAB, SETTAB These jump tables define those keywords which are v a l i d f o r a p a r t i c u l a r command. The f i r s t two l e t t e r s of each table name are the same as the f i r s t two l e t t e r s of the command f o r which the table defines allowable keywords. These tables are used by the GETKWS routine. 11.11 D) MSGTAB This table contains a l l messages generated by SYSREC. The messages are i n order according to t h e i r associated message number. Note that each of these messages i s exactly 32 bytes long (possibly padded with blanks). This corresponds to the action of the MESSAGE routine. E) PARLIST This i s the l i s t area used to pass parameters extracted from the input stream to the WORKER csect. Flow of CABLE csect 0-G> error CPROC error one of CRCP, RUCP, etc. excep t i o n i s MTCP OUT LINE GETLINE er r o r GETNEXT GETSYM error B 3 GETNAM GETTBS GETKWS GETNUM GETNEXT GETSYM GETKWS, GETSL e t c . error -> A B MTS operating system  MESSAGE ^Return) ERREXIT e r r o r e r r o r Figure 3 11.13 2.3 The Data Base The major data items of the SYSREC program are the TBVEC ( t e r -minal board vector) and i t s associated JVECS (jumper v e c t o r s ) , the DVEC (distance v e c t o r ) , the CABVEC (cable vector) and i t s associated LVECS ( l i n e vectors) and the SIGVEC ( s i g n a l vector) whose elements are pointed to by the hash table. The format and function of each of these items i s discussed i n th i s s e c t i o n . 1) TBVEC The TBVEC i s composed of en t r i e s r e f e r r i n g to created terminal boards. The format of such an entry i s ^ 8 1 3 4 4 2 2 NAME no. of JVEC DVEC DESC no. of no. of extns addr entry addr pins f r e e pins addr 2 18 4 weight extent pnter to value s t a r t CABLESIN pins chain 2 3 3 s t a r t CABVEC chain p i n entry addr A JVEC i s created f o r each entry i n the TBVEC. The number of elements i n the JVEC i s equal to the number of pins associated with the terminal board plus the number of times the s i z e of the terminal board has been al t e r e d * The JVEC format l a 1 Numbers above element f i e l d s r e f e r to the number of bytes associated with that f i e l d . 11.14 2 2 pin jumpered pin jumpered to to OR chain Thus a pin may be jumpered to at most two other pins. The maximum number of alterations (via ALTER command) permitted for a given terminal board i s nine. This corresponds to the 'extent start pins' f i e l d of a TBVEC entry which allows nine half word pin values to be stored. These values represent the highest numbered pin added by each alteration. The number of alterations i s stored i n the 'no. of extns' f i e l d . The entries in the 'CABLESIN' chain for a TBVEC entry record the addresses of cables which are connected to this terminal board and the lowest numered pin to which the cable i s connected. The chain i s ordered by ascending pin number. 2) DVEC The DVEC i s composed of elements which relate terminal board interconnections. There i s one element in the DVEC for each element in the TBVEC. Additionally, the DVEC is used to temporarily record a minimum path signal route. The format of a DVEC entry is 1 3 4 4 2 2 labelled TBVEC addr addr label start pin flag entry labelled connecting this TB addr from TB cable 2 2 2 3 3 start pin from TB start line in cable length addr of connected TB c chain length addr of chain connected TB 11.15 The chain of terminal board interconnections records the addresses of the terminal boards to which the terminal board corresponding to this DVEC element i s connected and the.length to that terminal board. The chain i s unordered. The remainder of the fields in each DVEC element are used to pass signal route information between the minimum path routing subroutine (ROOT) and the routine which stores this information i n the data base (PUR). 3) CABVEC The CABVEC is composed of entries corresponding to cables i n the configuration. This format of a CABVEC element i s 8 4 4 1 3 4 2 2 NAME 'A' TB 'B' TB code LVEC desc cable no. of addr addr value addr addr length lines ! • I , 2 1 1 no. of removed reserved for free lines flag expansion Corresponding to each element in the CABVEC, there exists a LVEC. The number of elements in each LVEC equals the number of lines in the associated cable. The LVEC records which signal, i f any i s carried on each line of the cable and the terminal board pin numbers to which each line i s connected. The LVEC format i s 1 3 2 2 2 2 status SIGVEC 'A' TB 'B' TB signal reserved for j flag entry add>f_ pin t>in expansion j The 'A' and 'B' TB addresses i n a CABVEC element point to the names of the terminal boards which this cable connects. These 11.16 addresses also represent the terminal boards to which pins on the 'A' and 'B' p i n f i e l d s of each LVEC belong. An entry i s considered deleted from the CABVEC i f i t s 'removed f l a g ' f i e l d i s appropriately set . 4) SIGVEC The SIGVEC i s composed of at most 32 separate chains of elements. Each element i n a chain contains information about a cur r e n t l y e x i s t i n g s i g n a l . The format of such an element i s 8 4 4 4 2 2 2 NAME addr of desc chain dimension length date s t a r t cable addr The l o c a t i o n of a SIGVEC element i s determined by hashing the ,, corresponding s i g n a l name and then using the hash table (HASHTAB) to determine to which chain the element belongs. E n t r i e s are added to the t a i l of t h i s p a r t i c u l a r chain as required. This may be i l l u s t r a t e d by: HASHTAB ^ 32 p o s s i b l e elements i n HASHTAB 0 SIGVEC element SIGVEC element -> SIGVEC element SIGVEC element 11.17-. Thus a l l the s i g n a l names i n a given chain hash to the same value. Each SIGVEC element contains a pointer to a CABVEC element which i s considered to be the cable i n which the s i g n a l o r iginated. 2.4 WORKER csect - d e t a i l 2.4.1 Routines"*" A) CRR * This routine creates an entry f o r a terminal board defined i n the TBVEC. A corresponding DVEC entry i s also made and the JVEC f or t h i s terminal board i s a l l o c a t e d and i n i t i a l i z e d . B) RUR * This routine runs a cable between two e x i s t i n g terminal boards. The subroutine PFRE i s c a l l e d to determine which pins the cable mayk be attached to on each terminal board. C) ROR * This .routine determines the f e a s i b i l i t y of a s i g n a l route. D) PUR * This routine puts a s i g n a l between two e x i s t i n g terminal boards. PUR c a l l s the subroutine ROOT to perform s i g n a l routing on a minimum path length b a s i s . The ROOT subroutine, i f su c c e s s f u l , returns the DVEC set up such that PUR may use the information stored i n i t to trace out the assigned route. The DVEC i s set up so that s t a r t i n g from TB2 (the " t o " terminal board), each terminal board points to the terminal board that precedes i t on th i s route. In add i t i o n , the DVEC contains information as to which terminal board 1 an * denotes a routine for which a flowchart can be found i n Appendix A. 11.18 pins, cables and cable l i n e s are part of the route. In s t o r i n g the s i g n a l route i n the SYSREC data base, PUR f i r s t ensures the route can be stored, and then i f i n f a c t i t can, stores the route. This action avoids having to remove part of a stored s i g n a l should i t be found that there i s i n s u f f i c i e n t jumper space at some point to continue s t o r i n g t h i s route. E) EXR * This routine extends a s i g n a l from one terminal board to another. Depending upon the s e t t i n g of the DIRECT keyword, t h i s routine c a l l s ROOT and then a subsection of PUR to complete the extension, or i t attempts the extension on i t s own. F) ALR * This routine i s used to a l t e r the number of pins assigned to a terminal board. In increasing the number of pins on a board, t h i s routine extends the JVEC chain f o r that board. G) COR * This routine puts a s i g n a l along a s p e c i f i e d cable. The cable i s checked to ensure i t has s u f f i c i e n t free l i n e s to accommodate the s i g n a l width. H) DIR * This routine i s used to disconnect cables or s i g n a l s . I f a cable i s to be disconnected, a l l s i g n a l s running i n that cable are also d i s -connected. To disconnect a s i g n a l t h i s routine c a l l s the TRAC sub-routine with an appropriate f l a g s e t t i n g . Entries i n the SIGVEC are removed by DIR. To disconnect a cable once a l l associated s i g n a l s have been disconnected, t h i s routine sets a f l a g i n the CABVEC entry f o r that 11.19 cable and then resets a l l l i n e s between t h i s cable and connected terminal boards. I) TRR * This routine traces three types of elements: s i g n a l s , a terminal board p i n or cable l i n e s . Signals are traced by the TRAC subroutine while p i n and l i n e tracings are determined by TRR i t s e l f . J) LIR * This routine l i s t s the names of a l l e n t i t i e s within a s p e c i f i e d class ( i e s i g n a l s , terminal boards, cables). K) SUR * This routine summarizes i n d i v i d u a l s i g n a l s , terminal boards, cables, or a l l the elements within one of the preceding c l a s s e s , or a l l the elements within a l l three c l a s s e s . L) WER This routine a l t e r s the weight value associated with a terminal board. M) •DER This routine appends a d e s c r i p t i v e phrase to a s i g n a l , terminal board or cable. The given phrase replaces any e x i s t i n g phrased N) SER This routine i s used to set a new maximum number of elements i n ei t h e r the TBVEC or CABVEC. Since t h i s routine simply a l t e r s the count of maximum allowable elements i n e i t h e r vector ( i e change i n TBV#JCB or CV#JCB) but does not a l l o c a t e a d d i t i o n a l memory space to a vector, continuing to use SYSREC a f t e r i s s u i n g a SET command could 11.20 result in overwriting of data. Hence, to avoid this, SER passes control to the QUR routine when i t i s finished altering the element count and QUR proceeds to terminate execution. When this confi-guration is specified as input for a PAR=CONTINUE run, the RESIN routine w i l l then allocate space t° the vector based on the maximum element count. 0) QUR * This routine terminates execution. It i s entered as a result of either the QUIT or SET command being issued. QUR (via FNAME) prompts the user to define a f i l e name and then attempts to create a sequential f i l e with the given name. The size of the f i l e created is a function of the cumulative number of pages SYSREC has obtained since execution on this configuration began (GSCOUNT). Error procedures exist for the case that a f i l e with the specified name cannot be created. When a f i l e has been successfully created, QUR temporarily passes control to the SAVE routine which writes the current confi-guration into that f i l e . 2.4.2 Subroutines These are the major subroutines of the WORKER csect which are called directly or indirectly by those routines discussed in Section 2.4.1. A) SAVE * This subroutine saves the current configuration i n a f i l e , the name of which i s determined by QUR. The .elements of the data base are saved in the following order: CABVEC, TBVEC, DVEC, SIGVEC. 11.21 Each element of these vectors i s wr i t t e n as a s i n g l e l o g i c a l record a f t e r a l l address f i e l d s i n that element have been a l t e r e d to relocatable format. Address f i e l d s p ointing to chains or other external elements (ie descriptions) contain a count of the number of elements or bytes i n the chain. A l l chains and external elements (incl u d i n g JVEC and LVEC) are saved immediately following the CABVEC, TBVEC, DVEC or SIGVEC entry to which they correspond. B) RES This subroutine restores a previously created configuration from a s p e c i f i e d input f i l e . Elements are restored i n exactly the same order as they were saved by the SAVE subroutine. C) PFRE * This subroutine i s c a l l e d by RUR to determine which pins on a terminal board a cable of s p e c i f i e d dimension may be connected to. The routine accepts user requested s t a r t i n g pins or i f none are given, i t attempts to f i n d a.suitable subset of pins. D) ROOT *, PINCHK1 *, PINCHK5 * These routines are the essence of the minimum path routing algorithm. ROOT executes the algorithm while c a l l i n g PINCHK1 and PINCHK5 to e s t a b l i s h the set of a l l p o s s i b l e routes f o r given s i g n a l . PINCHK1 determines i f i t i s poss i b l e to s t a r t or terminate the s i g n a l at given terminal boards and s t a r t pins. PINCHK5 returns to ROOT cables eminating from a terminal board. The returned cables are such that they are of s u f f i c i e n t free l i n e s to accommodate the s i g n a l . The ROOT routine i s the implementation of the algorithm described i n the SYSREC USER'S MANUAL. 11.22 E) TBCHN * This subroutine i s c a l l e d by RUR to record a cable eminating from a terminal board. The routine makes an ordered entry i n t o the CABLESIN chain of a TBVEC element. Entries i n the chain are ordered by ascending connected s t a r t pin number (see discussion of TBVEC i n Section 2.3). F) ' TRAC * This subroutine extracts from the data base a prerecorded s i g n a l route. This route i s e i t h e r w r i t t e n out or disconnected depending upon whether TRR or DIR i s the c a l l i n g routine. The remaining subroutines employed by the WORKER csect may be ref e r r e d to v i a the program source l i s t i n g (see Appendix B). 11.23 BIBLIOGRAPHY 1. Dijkstra, E. W., "A Note on Two Problems in Connexion with Graphs", Numerische Mathematik 1, 269-271 (1959). 2. Dreyfus, S. E., "An Appraisal of Some Shortest-Path Algorithms", Operations Research 17, 395-412 (1969). 3. IBM System/360 Operating System: Assembler Language, Form C28-6514-5. 4. IBM System/360 Principles of Operation, Form A22-6821-7. 5. Nicholson, T. A. J., "Finding the Shortest Route Between Two Points in a Network", Computer Journal 9, 275-280 (1966). 6. Walsh, D., A Guide for Software Documentation, Inter-ACT, New York, N.Y. (1969). 7. Whiting, P. D. and J. A. H i l l i e r , "A Method for Finding the Shortest Route through a Road Network", Operational  Research Quarterly 11, 37-40 (I960). I I . A . l APPENDIX A Flowcharts This appendix contains flowcharts of the major routines of the SYSREC program. Flowcharts f o r the following routines appear i n the order i n d i c a t e d . 1. CRR 11. SUR 2. RUR 12. QUR 3. ROR 13. SAVE 4. PUR 14. PFRE 5. EXR 15. PINCHK1 6. ALR 16. PINCHK5 7. COR 17. ROOT 8. DIR 18. TBCHN 9. TRR 19. TRAC 10. LIR Note: The symbol (^ EM^ ) denotes a message generating and/or e r r o r e x i t routine. I £>0 GETCOR£ £OA? M£W JV£C CM/A/ <#• S£r LtNKS A L R F L O W C H A R - T 4 NO YES NO NO CNAME EXIST YES SNAME EXIST NO CODES OK YES 'SUFF/CttNl S77//S CABlSy YES /STAZT UA/i\ NO ^SPECIF/H, ro*h LTHIS CABLE/ YES NO /N£C£S$t\ty\ YES i/Nes SET ARGUMENT I/ST sh GO TO PtNCHKS TO FiND Is7 SCHM' UNALLOCATED CABLE LINES SET NEW N? OE E/?E£ L/NES PUT SN^ME ETC. /N S/OVEC COR FLOWCHART A/O SroAtE TBNAME PINS FINS TR£E EXTENTS /A/ /VEXT LOCATION IAJ TBVEC DE TE A? A/!/ NE N? OF PINS *• DO GET CORE FOR JVEC SET JVEC ADDR )N T3VEC ZERO ENTIRE JVEC SET CABLES/N CHAI/V - O WEIGHT VALUE N? OF EX.TEAISIOAIS 1 FIND NEXT LOCATION IN DVEC <h SET ITS ADDR IN TBVEC /N DVEC ELEMENT SET LINK TO TBVEC l $ r CHAIN" TO ZERO \ PROCESS A NY DESCRIPTION FOR THIS TB CRR FLOW CHART yes I S£T ARGUMENT LIST FOR ROOT i GO TO ROOT I ON RETURN FPOM ROOT WRITE SUCCESS N)£SSAG£ ROR FLOWCHART DETE&M/A/E SIZE OF F/IE KEQiS/RED TO HOLD THIS CONFIGURATION? GO TO FNANIE TO READ /N A USER DEE/MED FILE A/A ME Q(JF1 FLOW CHART TRY TO CREATE A FILE W/TH THE GIVEN A/A ME ISSt/£ MESSAGE <t- AS K IE OK TO DESTROY-NO ZSSUE MESSAGE: <$• ADVICE YES OESTROY THE F/LE SET FlLEA/A ME ' A/AM E JUST DESTROYED ISSUE FILE CREATED MESSAGE GET FDUB FOR FILE CHEATED » STORE IT FO& USE BY SAVE \ GO TO SAVE TSSUE S L/C C ES S,F UL SAVE MESSAGE A/O A/O GET THE START /V/V /^ o>? r///s CABLE - X A/O GET THE START /=>/A/ FOR TH/S CABLE -A/O = START y = V / V POfii .4 A / ATTACHED CABLE St/CM THAT THIS P/A/ A/9 £ P/AJ BUT AjeXT PIGME~P STAA?T P/AJ rO/S AA/ ATTACH£0 CABLE IS > PIN GET A/9 OF L/NES ASSOC/ATEP W/TH THIS ATTACHED CABLE - CL/NES P/AJCHK I FLOWCHART YES 1 GLTT LVECC FOR. TH/S CABLE f F/A/£> F>/A/ //V TH/S L VEC CHECK THIS i-ASEXr A?OOTDIM-l P/A/S FOR FREE STATUS A/O ETA* AIL THESE P/A/S k FREE. YES l NO SET ARGUMENT LIST FOR TBNAME I <?• GO TO F>FS?E \YES SET ARGUMENT LIST FOR TBNAME 2 <? GO TO PFRE YES \  IN MEYT LOCATION OF CABVEC £NT£R CNAME A DORS OF CON NEC TB D TBS N? OF LINES N° OF FA?EE LINES i CO G ETC ORE FOR LVEC FOR TN/S CABLE *• STORE LVEC ADDR /Al CAS VEC 1 SET RESPECTIVE CONN EC TED PIN NUMBERS IN ELEMENTS OF LVEC:ZERO I sTW0fiD OF EACH ELEMENT \ 1 S £ 7 CABLE CODE /Al CABVEC * PROCESS ANT DES CRIPT/ON SET REMOVED FIA6 - OFF SET ARGUMENT LIST TO TBCHN FOR TBNAME I GO TO TBCHN 1 SET ARGUMENT LIST TO TBCHN FOR TBNAME Z GO TO TBCHN 1 GO TO DVSER TC SEE IF TBS ALREADY CONNECTED YES ^CONNECTED) NO AAESSAGF GO TO DVCHENT FOR TBNAME I <*• TBNAME 2 t SET CABLE LENGTH 1 BET NEW N? OF FREE PINS TBNAMIE I * TBNAME 2 ? 6 RUF? FLOWCHART YES I GET B BYTES FROM GETCOPE GET P//V NUMBERS ASSOCIATED V/ITH TH/S ATTACHED CABLE -PIN' SET UP 1ST ELE N1EA/T /Al CHA/AI A/O GET 8 BYTES FPOM GETCOP.£ A/O SET POINTER TO FRO Ay? LAST CHAIN EL£Asf£A/T> ADD NEW EL EN1ENT TO EA/D OF CHAIAJ ENTER DATA /A/TO NEW £LEA/IEA/T TBCHN FLOWCHART \ = X l o / 7 NO SEr ARGUMENT LIST * GO TO ROOT EXTSW = X Ol SO TO PUR MIA ENTRY POINT PUTENTRY TO STORE SIGNAL EXTENSION YES SET ARGUMENT LIST * GO TO PINCHKI NO YES YES NO NO YES MO I SET ARGUMENT LIST sr- GO TO P/NCHKI MO YES GET ARGUMENT LIST W. R. T. TBNAME I * GO TO PINCHK5 FOR THE TWO DIRECTLY CONNECTED ras, ADD NEW DATA TO JVECS ETC. IN SAME MANNER AS TRACE-BACK SECT/ON OF PUR OPERATES RETURN TO P/NCHKS MO *• THEN CO TO ^ Y~-\ 8 t EXR FLOWCHART SET ARGUMENT LIST $- GO TO ROOT TO ROUTE SIGNAL RETURN \NITH DVEC SET UP FOR BACK - TRACING 1 IN NIB ~ X^O/' PURFLI - X vOO' 1 6£T 0\A?TC ELEMENT CORRESPONDING TO TBNAME Z \ O l ' / NO 1 MAKE ENTRIES IN L VEC FOR CONNECTING CABLE 1 L MAKE ENTRIES IN CABVEC FOR CONNECTING CABLE TRY TO FIND SPACE FOR JUMPERS ON THIS TB NO r £ s / INHIB FILL IN JVEC FOR THIS TB GET AVE XT ELEMENT FROM DVEC (lE IN ORDER TB9...T8I) NO YES \, YES RfUN JUMPERS ON TB FROM WHICH EXTENSION STARTS /NHSB \ Y £ S 1 NO INHIB -- x v o o ' YES NO EXTS W YES • \ = x j \ t ' NO GET ADDR IN SIC VEC OF WHERE TO PUT SNAME SL MAKE ENTRY /N SIC VEC FOR SNAMtE FUR FLOWCHART SAVE jce /N RELOCATABLE FORM SAV£ GET-SPACE COL/A/T YES /VO GET BOUNDS O A / CABVEC FOR LOOPING PICK UP A/EXT ELEMENT FROM CABVEC MAKE SIGNAL NAME //V L VEC RELOCATABL E AAAKE TB ADDPESSES R.ELOCA TABLE SAVE} /N ORDER CABVEC ELEMENT, ITS L VEC } ITS DESCRIPTION GET BOUNDS ON TSVEC FOR L OOP/NG P/CK UP N£KT ELEMENT FROM TB VEC AYIAKE DVEC ADDRESS RELOCATABLE MAKE ENTRIES IN CABLES IN CHAIN RELOCATABLE SAVE, IN ORDER TBVEC ELEMENT^ ITS UV£C> ITS CABLES IN CHAIN) ITS DESCRIPTION GET BOUNDS ON DVEC FOR LOOP/NG PICA: UP NEXT EL ANIENT FROM D VEC MAKE TB POIN TE& RELOCATABLE MAKE ELEMENTS IN CONNECT 2 CHAIN /RELOCATABLE SAVE; IN ORDER DVEC ELEMENT) ITS CON NECT 2 CHAIN YES /ANYMOC>< NO GET BOUNDS ON NASMTdB 2 FOLLOW EACH CHAIN FROM HASH TAB <v~ MAKE CABLE ADDRESSES RELOCATABLE J _ SAVE TNE NASHTAB i POINT TO O ELEMENT OF //ASHTAB 7~M P I C K UP NEXT E L E M E N T FROA/i HA~%HTA& 1 SAVE, /N ORDER EACH SICVEC ELEMENT ITS DESCRIPTION w THE CHA/N POINTED TO ST TMtS N/lSHT/ig ELEMENT SAVF FLOWCHART PETVAA/\ NO A/O LASTP/N - I GET START P/AJ FOR A/FXT ATTACHED CABLE -A/SP/A/ D-A/SP/AJ -LASTP/A/ PFRE FLOWCHART YES YES GET THE ATTACHED CABLE P. / - LAS TP/A/ I AS TP/A/ ~ ? LINES TH/S CABLE + A/SP/6 P/ - O NO NO YES GET START PIN , FOR NEXT ATTACHE O TB ~ A/S PIN YES / P/N + ((NC/MUAjeS -/)^ A/SPIN A/O PI - P/AJ YES NO GET NSP/A/ FOR THIS CABLi SL PI— P/N NO YES G£T P/M OF S IG MAI-ZE RO /srEri£M£AJT OF STA C/C TRACFL I = X ' o © ' DETERMINE SIGNAL START'S AT CTB : P/N / YES NO BLANK TRAC&UF THEN FILL /N / s r POSITION OF TR/S BUFFER DETERMINE WHAT CABLE CONN EC T££> TO CTB : P/N i /LEVEL - / TPACE THUS CA8L£ TO GET NEW CTB i P/N I ENTER CT8i P/N t LEVEL /NTO STACK YES F/LL /N 3*° POSITION OF TRACBUF 9- PP IN T AVO TRACFLl - X Ol RESET CABLE L/A/ES W LI/EC TO </AI(/SEd> STATUS SET NEW N?f#£C ONES ON 77//S CABLE TRAC FLOWCNAR.T 1 ENTER CTB„ P/N I LEVEL /NTO STACK ELEMENT^ FROM ENTRY ELEMENT IN JVEC FOR CTBIPINI GET NEW P/MS ON SAME CTB F/LL IN 2 "° POSITION OF \CBUF ENTER CTB, P/N I LEVEL INTO STACK POP CTB; ST/1CK P/N/j TO GET LEVEL NO JL LEVEL = LEVEL YES GET Ji/EC EN LEVEL 'FOG CTB TN/S /S JI/MPER.ED TO t TRY :P/MI <&/N YES YES NO YES B YES A/O ZEPO D/AA, ELEMENTS /N c/VEC FOR THIS TB A/O NO ELEMENT = LEVEL. NO NO \R£TUM YES RESTORE IA//T/AL CTB I P/N/ FROM TS ON WN/CH SIGMAL STARTS TRACFLl * X X 0 0 ' E3LANK TRACBUF 3- F/LL UP / S T POSIT/ON BLANK TRAC BLIP THEN F/LL UP / S 7 PQS IT/ON f _1 Q k 1 O V k. k | o k u kl V Q k 0 X i i k k o o 0 n II K $ o ALL T3S = X 'OO' ALL CASS r X 'oo' S/65 - X OO' YE 5 RR/NT TB SUMMARY HEAD/AJG SET LOOP BOUNDS TO SUMMARIZE ALL TBS ASIESSA\G£ I 1 PR/NT DESCRIPTION t PINS, P/A/S FPEE , WEIGHT PR I At T L OA/G SUMMARY HEADING (^£My*r NO ALL CAB S = X " Ol' SET BOUNDS FOR LOOP TO SUMMARIZE ALL CABLES PXINT ATTACHED CABIE, LINE NUMBER) S/GNAlj UUN3PERS. TO, £>AT£ OF SZONAL FOR EACH PIN ON THE TB RR/NT CABLE SUMMARY HEADING PRINT DESCRIPTION, L/NES, L/NES TREE, LENGTH CODS PR/NT WHICH TBS/P/A/S THE CA BL E CONA/EC TS NO ALL SIGS- XOl' YES SET SOUNDS FOR LOOP TO SUMMARIZE ALL SIGNALS SUR FlOWC HART PRINT SIGNAL SUMMARY HEADING PR/NT DESCRIPTION, DIM, LENGTH, DATE: APPENDIX B I I . B . l SYSREC Source L i s t i n g The SYSREC program generates approximately two hundred pages of assembler l i s t i n g and thus, i n the i n t e r e s t of p r a c t i c a l i t y , i s not included i n t h i s Logic Manual. Copies of t h i s l i s t i n g may be acquired from Department of Computer Science U n i v e r s i t y of B r i t i s h Columbia Vancouver 8, B. C. II i 

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            data-media="{[{embed.selectedMedia}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
https://iiif.library.ubc.ca/presentation/dsp.831.1-0051280/manifest

Comment

Related Items