Digital PDFs
Documents
Guest
Register
Log In
DIGITAL-8-11-S
December 1965
59 pages
Original
2.4MB
view
download
Document:
digital-8-11-s-d
Order Number:
DIGITAL-8-11-S
Revision:
Pages:
59
Original Filename:
https://svn.so-much-stuff.com/svn/trunk/pdp8/src/dec/digital-8-11-s/digital-8-11-s-d.pdf
OCR Text
43:05 J<F_0_O FZU_21_DOM 20....(YLOEEOU . .Ofl.<z><—2 wIan WPPUWDIU<WW<2 U.Q....>....m|..._lm UUvim 0.9.4.)... ONES—A NOCZUKNZA. .u.»OQ.~>Z:<_—ZQ oomuom>4.oz . 7>><Z>mny .<_>ZC>_. g>mm>01cmm44m Copyright I965 by Digi’ral Equipment Corporation PREFACE The programs discussed in this manual, though written on the Programmed Data Processor—8 computer, can also be used without change on Digital's Programmed Data Processor-5. This compatability between the libraries of the two computers results in four maior advantages: l . The PD P-8 comes to the user complete with an extensive selection of system programs and routines making the full data processing capability of the new computer immediately available to each user, eliminating many of the common initial programming delays. 2. The PDP—8 programming system takes advantage of the many man-years of field testing by PDP-5 users. 3. Each computer can take immediate advantage of the continuing program developments for the other. 4. Programs written by users of the PD P—5 and submitted to the users' library (DECUS Digital Equipment Corporation Users' Society) are immediately available to PDP—8 users. CONTENTS 1 INTRODUCTION. .' 2 SUMMARY OF THE DZTAK SYSTEM Interfacing Transducers Interface Types Input Signal Buffer 4 4 ...................... 5 .......... 6 ............................................. System Inputs 6 ........................................ System Outputs ............................... 7 ............................................ 7 ................................................ 8 Variables ........ Arithmetic Operators Format Statements GOTO Statements s ......................... Gray Binary Conversion Clock . 9 ......... ............................... I0 .................................... IO .................................... I0 THE DZTAK PROGRAMMING LANGUAGE ..... H ................................. I I ............................................... II DXTAK Statements ....... I2 ...................................... Format Statements I5 .................................... Conditional Program Section ERROR MESSAGES - ................. I Variable Names 4 4 ..................... Multiplexed Analog—to-Digital Conversion Input 3 3 .................................... .......................................... Serial-Parallel Time 3 ............................ Digital-Parallel Input Signal Buffer Programming 1 ........................................... ‘ .................... I7 ........ ........................................... 2I .. ' ......................................... 2I ............................................ 2I Compilation Run Time CONTENTS (continued) Appendix Page 1 FLOW CHARTS 2 PROGRAM EXAMPLES ' .................................. ............. ........................................ vi. A] A23 CHAPTER 1 INTRODUCHON The speed of operation and powerful operation code structure of the make possible a unique programming system for use in data This system, called DKTAK (for Ea Equisition), Programmed Data Processor-8 acquisition situations. permits a complex, program-controlled, data acquisition system to be adapted to a particular experimental environment through the use of a highly sophisticated and precise pseudo code. The necessity of extensive machine programming to meet a particular data acquisition requirement is thereby eliminated. In addition to its data acquisition applications, DKTAK furnishes the experimenter with a means of calibrating transducers and is a powerful aid in troubleshooting a complex data-gathering system. Programs to accomplish these objectives may be written and readily revised in the DXTAK language . The D—ATAK system, when used to record experimental data on paper tape, that may be used as input to a FORTRAN program . produces a tape Thus the program for the processing of experimental data may be coded in a widely recognized compiler language if the user so desires. A typical D'ATAK equipment configuration is illustrated in Figure l. DKTAK does not, of course, require all of the equipment in Figure i. If, for example, a given system did not include a plotter, the PLOT command would never be used. Finally, the DXTAK system may be readily adapted to special—purpose peripheral devices by specification of input/output transfer (IOT) commands appropriate to a given device. Thus a Type 350 Plotter might be replaced by a more elaborate plotting mechanism if desired. The DZTAK language presents for the first time a unified, systematic approach to the data acquisition, calibration, experiment modification, and troubleshooting requirements of the scientist engaged in experimental analysis. The recent use of digital computers in industrial EEEIS‘ELTRAIN —v PARALLEL DIGITAL INPUTS SERML T0 PARALLEL CONVERTER SWITCH REGISTER UP To 64 ANALOG INPUTs MULT'PLEXER A-To-o CONVERTER POP-3 ASR-33 , _—_. \. CLOCK HIGH SPEED TAPE PUNCH 75A DECTAPE Figure l PnggER CONTROL 552 DUAL OECTAPE TRANSPORT 555 PARALLEL STATIC OUTPUTS ' Typical Data Acquisition System process control has shown that it is a valuable tool for acquiring information, both digital and analog, and making logical decisions concerning the acquisition of data while concurrently storing, processing, 'and displaying that information. Certainly a method of data manipulation similar to industrial control techniques would be advantageous to a scientist conducting an experiment. DKTAK is a programming system designed precisely for these purposes; this manual explains how to use the D-ATAK system and language. CHAPTER SUMMARY OF THE 2 DRTAK SYSTEM INTERFACING TRANSDUCERS Three basic types of interfaces are used with the PDP-7 and PDP—8 computers in order to rye-3 ceive data from environment sensors. These interfaces allow data to enter the computer under control of a simple real-time symbolic compiler that gives the investigator the Following flex- ibility when he samples the environment: 1 . A variety of preprogrammed interface devices that easily connect the computer to instrumentation. 2. Simple symbolic assignment of identifying names to physical input var- iables such as pressure, temperature, etc. 3. Absolute control in sampling the experimental environment with respect to time . 4. Computer compatibility with respect to rapid respOnse sensors using up to 176 separate sensing devices. 5. Capability to make logical decisions concerning the acquisition of data while sampling the environment. 6. Storage of data for future computations as well' as immediate output for checking quality while obtaining data. Transducers are sometimes considered unique devices that do not lend themselves to being connected directly to a computer; however, by the use of basic standard interface types,‘ most instruments can be connected directly to a computer with little additional equipment. us examine the basic types of interfaces that would be to various transducers . necessary to interconnect a 'Let computer INTERFACE TYPES Digital-Parallel Input Signal Buffer This buffer permits the direct parallel insertion of a digital number into the computer, using a method by which the number immediately becomes a computer word. Examples of devices feeding data in by this method are shaft—position encoders, switch registers, and other allied devices. Figure 2 shows the general method for digital-parallel input. f' ———. . \ ——+—-> —-—-—. —-—~> ..__._. “r. TRANSDUCER-4 L- COMPUTER ——> —---9 -—_> ._._. - ————> “M' k US$822“ Figure 2 J GATING Digital-Parallel Signal Buffer This method can accommodate signals or pulses from a minimum range of O to -l0 mv up to a maximum of 20 to —15v.- The system can include one buffer for each of several dozen variables. serial-Parallel Input Signal Buffer This method would. be used, for example, in telemetry applications where the transmitter is remotely located and able to transmit a number of input words one bit at a time along a single conductor cable or by radio (see Figure 3). TRANSDUCER o 0 SERIAL o o i o o o r o I x DEC TYPE xam PULSE TRAIN WNGllllllllllll llllllllllll TTlllllllTlT COMPUTER Figure 3 Serial-Parallel Signal Buffer This buffer can convert a serial pulse train to a l2-bit word in 6 psec, or one bit every 500 nsec. lt accommodates ranges of input levels from a minimum of 0 to —l0 mv, up to a maximum of 20 to The flexibility provided in this buffer allows the user to format the data before it is —15v. finally assembled as computer words; that is, he can insert octal constants in the specific serial It provides the programmer with the following additional instructions in word of his choice. the computer: l . Skip if data flag = O. = 0. 2. Skip if start flag 3. Clear data flag and start flag. 4 Read data into the accumulator. . Multiplexed Analog-to—Digital Conversion Input This method is particularly advantageous in data acquisition when many devices such as therm— istors, pressure sensors, and strain gages are working together. One example of where this method would prove advantageous is a thermistor chain in which each thermistor, pressure sensor, or conductivity sensor could be individually sampled by the computer. Figure 4 indicates this relationship. ‘ - SENSORS THRU "2:112:50?“ —-> ANALOG TO DIGITAL CONVERTER i—u COMPUTER fl Figure 4 Multiplexed Analog-to—Digital Conversion 5 Switching from one input to the next in the multiplexer is accomplished in 2 psec, and up to 64 separate uses inputs can be sampled directly by the computer. The analog—to-digital converter the range of O to -—lOv. PROGRAMMING The task of writing a special-purpose program for each installation could be a formidable prob— lem involving a great deal of time and money. In order to alleviate this problem, Digital Equipment Corporation has written DKTAK, an algebraic compiler that allows the experimenter to format his data' acquisition problem in a simple language similar to algebra. By using the DKTAK language, he is given a- great deal of flexibility concerning the interface hardware that he has available. This program allows him flexibility in choosing the frequency and con- ditions under which he samples the experimental environment .as well as making possible the adding or changing of sensors without the major task of reprogramming in machine coding. This program is available for the time PDP-8, a compact 12-bit computer with a l.5-psec cycle . In summary, this program allows the investigator to analyze his sample using the following inputs. Up to 96 independent data variables using digital-parallel input. Up to 64 independent data variables using a multiplexed A—to-D converter. Up to 25 independent data variables via serial buffer input. Each independent variable can be sampled at a rate of up to lOO times per second. System lnputs Data can come to the computer from the digital-parallel and the multiplexed analog-digital converter. a input buffer, the serial input buffer, Each Of these devices is assigned symbolic name that tells the computer which device is transmitting information. The symbols are:DGIN: Digital-parallel signal buffer; input can be converted from Gray code to binary. ,BUFR: Serial, buffer-input. ADCV: Multiplexed analog4digital converter: System Outputs Data output can be distributed to a number iof‘specificdlly named devices to allow. immediate presentation as well as permanent storage. The following output symbols and their associated devices are available: I On-line teleprinter. TYPE Variables can be typed in decimal Or octal. Decimal is specified by 1 name " -QPNCH: - . High-speed paper tape p’Unehx.; FVariablescanibe*pbnched~:invdeci—“ mal or octal. Decimal is specified by 1 immediately following. the_variab|e name DCTP: ' , ' . DECtape in binary with; identifying words 5; X—Y plotter. . J- The plotter pen is moved to a new position each time an output is -spec'ifi'ed'.»-' DIG l x' Digital's compact DECtape" Variables are "recorded magnetically ron PLOT: immediately following the variable “ * , Up to four digital outputs are available through parallel buffers“... ‘ to other devices such as DIG 4: relays, buffers, sense lines, and range sWitChin'g devices .> Variables Input variables to the computer are aSSigned alphanUmeric symbols by' the investigator. They can be one to four characters long, and must begin with a lettert-“Some exampleszofthese Would be: T 123, SURF, DEEP, AIR, X, Y, TEMP, H20, H202 ' -' In addition, variables that are inputted through the multiplexer have specified channels; that is, T 123 (i) would be input through channel 1 of the multiplexer. Time Four- types of time can be used by the computer: basic, program, variable, and reference. Basic Time Basic time represents the basic interval of .01 sec in which a clock interrupts the program. Program Time This time represents the basic rate at which the investigator desires to interrogate the sensors. It is some multiple of the basic time and is under program control. ‘ * Its symbology is simply ex- pressed as fol lows: QUNT: 50 The investigator has specified that the program time will be (50-) x (.01) = 0.5. sec. 0.5 sec; that is, each sensor will be sampled every If he desires the fastest rate possible, he may express the. following: QUNT: 1 In which case each variable will be sampled every 0.0] sec. Variable Time In order to allow more flexibility in timing, digital inputs can be sampled at a slower rate than the program time specifies. DGIN:Ll For example, the expression: (4, L2 (4 specifies that the digital input variables Li and L2 should be sampled the program time or every (4) x (0.5) = 2 sec. once in four cycles of Reference Time It is often desirable to know the reference time in order to associate data with time. Within the program is a 3-word variable, CLOK, which counts the number of seconds, minutes,_ and hours that have elapsed since start-up time; it can be used as an output variable to reference data with time. Arithmetic Operations Addition and Subtraction Variables can have constants added to or subtracted from them as they are sampled, or the variables can be added to or subtracted from each other. All arithmetic operations are done in 2's complement arithmetic, with the operands being con- fixed—point numbers. The following examples mean that the variable T2 will sidered signed, have constants or variables added or subtracted before output: Add a constant to the variable. T2 + 137 T2 - 3 Subtract a constant. . Add a second variable. T2 + T3 Arithmetic Comparison Variables can be compared against constants, compared against other variables, or compared against themselves with respect to sample time. The basic comparison instructions are: lFEQ X, Y if X is equal to Y IFLS if X is less than Y X, Y IFGR X, Y if X is greater than Y An example of the comparison of a variable against a constant would be: IFEQ X, 1000; meaning that is X is equalt010008, execute the operation following the semicolon; otherWise, go to the next line. Every time a variable is recorded and outputted, its value is preserved and is given the name of the original variable. Thus, X and @ X represent the current value of the variable X, and its value when last used as output, respectively. The following example of the comparison of a variable and its predecessor: lFLS X, @ X; means that if X is less than it was when last recorded and output, execute the operation fol- lowing the semicolon; otherwise, go to the next line. Gray Binary Conversion Gray binary code can be converted to simple binary under program control if the input method is digital (DGIN). This provides the investigator with a rapid means of conversion in order to intercompare the usual shaftFencoded Gray binary numbers, if the shaft encoder does not convert from Gray Code to simple binary prior to buffering. The conversion is accomplished by inserting 1 immediately before the time multiple. DGIN Li M This means that the Gray binary variable Ll is sampled every fourth time through the program and is converted to a simple binary number before comparison or storing. Format Statements Format statements are numbered from l-l5 (decimal). They containthe namesof variables and their 'output forms (octal or decimal for the Teletype or punch). with a device name in every output. statement. FORM: Format numbers appear along Thus, the statement: l,X,Y‘l,Z indicates that the variables X, Y, and Z are to be outputted to the Teletype, with X typed in octal, Y typed in decimal, and Z typed in decimal. GOTO Statement Program control can be unconditionally transferred through the use of the GOTO statement. l0 CHAPTER DATAK THE 3 PROGRAMMING LANGUAGE Every DKTAK program consists of four parts: . Assignment of input devices. 2. Definition of output formats. 3. Unconditional outputs, i.e., outputs controlled by the clock. 4. The i conditional program section. This is illustrated in the short DZTAK program be low: QUNT: 62‘ DGIN: SWIT (2 INPUT ASSIGNMENT OUTPUT DEFINITIONS FORM:1,CLOK,SWIT,X,Y,Z FORM:7,CLOK,SWIT <7, PNCH,2> UNCONDITIONAL OUTPUTS [5: CONDITIONAL PROGRAM SECTION . 6: Y=I+(x=SWIT-Io):77 Z=¥—(X+]7);OUTP(1,TYPE);OUTP(1,DCTP) IFEQ@SWIT,SWIT;GOTO 6 GOTO 5 1 END STATEMENT END The maximum hardware configuration for which DZTAK is designed is illustrated in Figure 5. DATAK STATEMENTS Clock All sampling of the input is controlled by the clock, except for the serial-parallel cOnverter which sends a signal to the PDP—*8 when it has twelve bits in its buffer. Output to the devices may be unconditionally controlled by the clock or may be initiated when certain prescribed conditions are met. When a variable or quantity is output, its value at output time is stored and hence may be compared with incoming values to detect changes. is .Ol sec. ll The basic clOck cycle PULSE TRAIN :0 up TO 300 BITS g m {5% fri o I I) ' ' SERIAL '2 B'Ts fgLSEAEKEfE'i 63.3 cps PUNCH “P333“ — ‘2 9'T5 CONVERTER 100 cps CLOCK ANALOG -To- DIGITAL CONVERTER ON- LINE TELEPRINTER l 64-CHANNEL MULTIPLEXER TTT 64 ANALOG INPUT . STATIC OUTPUT 12-Bl STATIC OUTPUT T ' 12- BIT STATIC OUTPUT ‘ 2—BIT STATIC OUTPUT ' Figure 5 , - Maximum Hardware Configuration The sampling period for The analog-digiTal converter is some mUlTiple Of This as specified by The sTaTemenT: QUNT: XXXX where XXXX is a given decimal inTeger. QUNT: means Leading zeros need noT be specified. For example: 5 ThaT all specified Channels of The analog-'digiTal converTer are To be sampled every 0.05 sec and The values sTored. Variable Names " Variable names may be up To four characTers long, musT sTarT wiTh a leTTer, and may conTain only leTTers and numbers: T723 SYMB HEAD SWIT 12 Each variable is assigned two unique addresses. the most recent input value. was last output. One is used by the input routines and contains The second address contains the value of the variable when it The output variable may be addressed in the conditional program section by preceding the variable name with "@." This may be used for comparison purposes, etc. Variable names are assigned to input devices in the following manner: 1. Analog-to—Digital Converter ADCV: Followed by variable names and channel ADCV: numbers; thus: T723 (6), HEAD (4) This means that channels 6 and 4 of the analog converter—multiplexer will be sampled and the values stored in registers T723 and HEAD, respectively. These will be sampled at some multiple of .Ol sec, where the multiple, is" specified by a QUNT: statement. QUNT: 5 ADCV: T723(6), HEAD(4) Channels 6 and 4 of the converter-multiplexer will be sampled every .05 sec. 2 . Serial- Parallel Converter BUFR: The serial-parallel converter sends a start pulse to the compUter, followed by followed in the order in which the 712—bit Words are received. llf data pulses every time twelve bits have been assembled. by variable names the computer receiVed. . BUFR: is If the computer receives more data pulses thanthere If more variables are variables, additional data from the converter is ignOred. are specified than there are data pulses, the remaining variables are not used. Each start pulse causes the list to be reset.‘ BUFR: SYMB,TH|S l3 After the start pulse from the buffer, succeeding data pulses cause the 12—bit If a third data pulse is received words to go into registers named SYMB, THIS. before the start pulse, it is ignored. 3. Digital Inputs The program is capable of handling up to eight l2-bit digital inputs. are These sampled at periods that are multiples of the period specified by the QUNT: statement. These inputs may be converted from 12-bit Gray code to l2—bit binary if specified. _ QUNT: 2 DGIN: SWlT(6, CODE12 This means that the first digital input (usually the switch register) is to be sampled and stored at a period that is six times the period specified by QUNT: 2 or every .12 sec. ' The second digital input is sampled every (2) (.02) sec or .04 sec and is to be converted from Gray code to binary before it is stored. This is useful when sampling shaft encoders, etc. '4. Digital Outputs Output is specified with a format number and a device name. ments contain the format number and a list of variables. Format state— Output form de- pends on the output device. relay buffers, etc. The first DlGl These are static output devices; i.e., 3:33 variable in the specified format statement is output to the DIG4 appropriate device asla l2-bit binary number. Teleprinter The entire list of variables in the specified format statement is TYPE I typed in octal (or decimal) on the 33 ASR. ceded by two decimalidigits which Each output is pre- are the format number, followed by the values of the variables separated by spaces, and finally a carriage return-line feed. Decimal output is specified in the format statement. l4 High-Speed Paper Tape Punch PNCH Output format is identical to the teleprinter format. Since the farmat number starts every line, this tape maybe processed with the PDP-8 FORTRAN SyStem. D EC tape DCTP The datum is recorded on DECtape using block lengths of 20l8. The first word of each'block indicates whether 'or not it is the last block. The second word contains the number of 12-bit words of data on the black. a Each command to output to DECtape causes 12-bit identifier word to be placed on the tape followed by 12- bit binary words. Decimal specifications in format statements-are overridden. When the DECtape nears the end of the tape, a message is typed and a fresh tape may be mounted on the second transport. ,X-Y Plotter PLOT The first tWO variables in the specified format statements represent, respectively, the X and Y coordinates. The plotter pen is moved . ’ from its previous position to this specified set to OI'GCI position-.11, It is initially location (0.0)-—the lower left—hand corner of the plotting . Format Statements Format statements are of the following form: FORM: 6,SW|T1, HEAD This is format statement number 6 which consists of the variables SWlT and HEAD. to the teleprinter or punch, SWIT is Converted to decimal when it. is outputted. There is a fixed system variable called CLOK. tively, the hours, minutes, and seconds. If output is ~ This is a 3-register variable containing, respec— The seconds are initially set to 0, and thevhours and minutes are set from the switch register when the execution of the program is initiated. 15 When output is to the teleprinter or to the'punch-and CLOK is in the specified formatstatement, it is outputted as three 2-d-i’git decimal numbers. When it is output to the DECtape, it is written as three 12-bit words. CLOK may not be output to the plotter or to any of the four digital outputs. However, the following is permissible: ‘ FORM: 3 1-2, X,Y,'CLOK with format statement 12 being specified in output statements to the punch and to the plotter. Output may be initiated unconditionally (i.e., by the clock) or Conditionally. Unconditional output statements contain the format statement number, the device name, and the output period (a multiple of the clock period established by the QUNT: statement). The unconditional output statements are delimited by angle brackets < .>. Example: ‘ A program to: l -. Sample the contents of the switch register every .5 sec; 2. :Punch this vaer in octal every .5 sec; and 3'. Type the value in decimal, along with the time, every 2 sec; could be programmed as follows: QUNT: 50 DGIN: FORM: swna 7,CLOK,SWth FORM: 6,SW|T - <7, TYPE, 4 6, PNCH,]> ' END 'The first statement, QUNT: 50, established the time interval as The second statement, DGIN: whichIs to be SWlT(l , identifies the first sampled every (l) (.5 sec) = .5 sec. 16 (50) - digital input (.Ol sec): as - 5 sec. the variable SWlT Decimal output is specified for SWIT The next two statements identify the output variables. in format statement number 7. The unconditional output statements are interpreted as follows: 7,TYPE,4 output to the teleprinter under control of format statement number 7 every (4) (.5 sec) 2 sec. = 6, PNCH,l output to the punch under control of format statement number 6 every (1) (.5 sec) = .5 sec. Format numbers are decimal and may be from l—l5. " ‘ Conditional Program Section The conditional program section consists of algebraic and control statements that may be used to initiate output, test for tolerance levels, or alter variables. There are four types of statements allowable in this section of the program: 1. Algebraic Expressions : Variable = Variable Operator Variable For example: : Y=A+B. These statements may be nested to any reasonable degree: : Y=A+(B=C+D) There are four basic operators: A+B 2's Complement Addition Arithmetic Operators A+B 2's Complement Subtraction Arithmetic Operators A.'B A<-B Inclusive OR Clear bit. For every bit in B that is a l, clear the cor- Boolean Operators responding bit in A. AAB l7 Boolean Operators Truth tables for the logical operations are as follows: A 0 E '0 0 1 £13. A___"3 0 0 1 0 ' 1 _ 1 o 1 1 1 1 0 ' Examples: ' A E 5:8 5:3 .513 _A~.B_ 6000 0077 7000 5000 7000 001 7 Cl 16 0060 7000 0077 0060 Expressions within parentheses are evaluated first. 0000 The Boolean operators have a higher priority than the arithmetic operators: Y=A+B?—C : is interpreted as if it had been written: Y=A+(B«C) : The equal sign (=) means replace the single variable on the left with the value of the expression on the right. X=B+_(Y=C-D) : is perfectly valid. same level. Thus: Two equal signs may not be used in one expression at the Thus: : ‘ A=B=0 although: is not valid, A=(B=0) : is valid. ‘ An arithmetic statement is terminated by either a carriage-return or a semicolon (;). The single quote (') acts as a line continuer as it does in all pro- gram sections . 18 : Y=A+ B; Z=Y+ D‘—A is a valid line and is evaluated from left to right. 2. Unconditional Transfer Any statement may begin with a statement number delimited by a colon (:.) There is one transfer instruction: : which says: GOTO XX transfer control to statement number XX. Example: 6: : Y=A+(B=C-D) GOTOé The GOTO statement must be the last statement on a line, although it need not be the first. 6: 3. Conditional Y=A+(B=C-D) ; GOTO 7 Expressions In addition to the unconditional transfer instruction, there must be condi- tional expressions. Conditional expressions are of the following general form: ' FUNCTION EXPRESSION, EXPRESSION; If the conditions are met, the instruction following the semicolon is executed; if they are not met, execute on the next line. The expressions may be a single variable or a statement within parentheses. The conditional functions are: lFEQ X,Y; If equal. lf X=Y, the statement is true. arguments are considered unsigned. l9 The IFLS X,Y; If less than. IF X is less than Y in absolute value, the statement is true. The arguments considered to be signed integers. are Thus: 7770 <2H IFGR X,Y; iswgreater than Yin absolute value, the statement is true. The argu— If greater than. considered to be signed ments are IFBE X,Y; If X if bit equal. integers. IF there are any corresponding 1's in X or Y, the statement is true. IFBE l77,l; is true. For example, if: 6: IFEQ A,B; GOTO 6 GOTO 5 V : This waits in a loop until A and B are unequal. 6: : IFEQ A,B; GOTO 5 GOTO 6 To reverse it: _ ' This waits in a loop until A and B are equal. 4. Output Statements Output statements are expressed in the conditional section as follows: OUTP (format number, device name) Whenever a variable is outpUt, its value at output time is recorded in a loca— tion that has, as a name, the original variable name preceded by "@. The conditional program section is delimited by square brackets [ ] The last statement in a program is END. 20 . " CHAPTER ERROR 4 MESSAGES COMPILATION During compilation, there may be two diagnostic messages: LANGUAGE ERROR There was some error in the source language. Since the source language is typed out as it is processed, the programmer can see where the error occurred. 5 # NOT FOUND A statement number was referenced by a GOTO statement in the conditional program section, but has not been defined anywhere in the program. Both of these errors cause the compiler to halt. It must be restarted at 2008. RUN TIME At run time, there may be several diagnostic messages: EX INTR Extraneous interrupt. Some device that is not used by DATAK has caused an interrupt. INTR OVR Interrupt overflow. DATAK was interrupted at a rate FORM OVR higher than its processing 'rate. Format overflow. The output devices are incapable of handling the specified output rates. The format list is about 30 positions long. STACK ERROR Indicates an error in the arithmetic statements that was The above errors are catastrophic; that is, not detected no by the compiler. recovery from these errors is possible, and the object system halts. 2i DT ERROR The DECtape error flag was raised For something other than an end—zone condition. DZTAK will clear the flag and attempt to proceed. TIMING ERROR The. DECtape buffer was filled before the second buffer could be written. DKTAK will continue although some information will be lost. READY TO SWITCH DECtape block number 2400 is being written. The write routines will switch from DECtape unit 1 to DECtape unit 2 at block number 2700. The next time the switch will be from DECtape unit 2 to DECtape unit 1, etc. 22 APPENDIX FLOW 1 CHARTS EXPLANATION OF FLOW CHARTS DATAK consists of two basic elements: the compiler and the operating system. of the compiler is to read the source The function language from the ASR-33 Paper Tape Reader or Keyboard. The compilerproduces the structured lists and other elements that control the operating system, and compiles the at run time. halts. logical and arithmetic statements into an interpretive code that is executed When the compiler reads the word END, it initializes the operating system and The switch register is set to the current time of clay and when the CONTINUE Key is depressed, the CLOK registers are set to this value and the operating system is started. The operating system consists of three major sections: 1 . The arithmetic interpreter, which executes the interpretive code generated by the compiler from the arithmetic and logical statements. 2. The output controlling routines, which call routines for specific devices and initiate output through use of the interrupt system. 3. The interrupt system, which handles all of the actual output operations, counts elapsed time, and initiates sampling and unconditional output. The arithmetic interpreter may call the output controlling routines (conditional outputs), as may-the clock service routines (unconditional outputs). Either type’of routine may be inter- rupted except for the DECtape flag servicing routines, which are accorded the highest priority. Page A3 of the flow charts shows the overall flow of events at run time. After each interpre- tive instruction is executed, the status of the output waiting list is tested. If there is an out— put word waiting to be processed, it is transmitted to the appropriate device handling routine. Page A4 shows the overall flow of the compiler. Pages A5 and A6 show the list structures used by the input/output routines. Al Page A7 shows the interrupt servicing technique. ”the. interrupt was not caused tape; the C(AC), C(L) and the return address are pushed down onto a list. causing the interrupt has been determined, it is cleared and’the Page A8 shows the clock service routine. It counts to 1 registers. It also counts to 1 time quantum by the DEC- When the flag interru‘lpt is reenabled. before incrementing the CLOK sec (specified by QUNTz) before testing to see if any input or output is to be initiated. It may call the routines ADCSER (analog-digital converter service routine), DISERV (digital input service routine) or 95191 (unconditional output con- troller). Page A9 illustrates the serial-parallel buffer service routine. Page A9 shows the teleprinter and punch service routines. Both of these routines have buf— fers which are cleared before new data is read in. Pages A10 and A11 show the routines called by the clock service routine to initiate sampling or output. The digital input routines contain a list of eight IOT's that the user may define to correspond to his particular equipment configuration. Page A11 shows the output-control routines. FORMAT is used to place an output word on the waiting list and to test for overflow. TFORM tests to see whether or not the waiting list is empty. If it is not empty, the top word on the list is saved and all others are moved up one position on the list. FOP1 is then called to operate on this format-output word. empty, TFORM exits. to test the waiting FOP1 calls the appropriate device routine and then returns to TFORM list status. Page A12 contains the digital-output routines. one If the list is —— each for DIGl, The user may define up to four lOT instructions, DIGZ, DIG3, and D104, to correspond to his equipment configuration. Pages A12 through A15 contain routines used for teleprinter and punch output. Pages A15 through A20 contain the DECtape output routines. DECtape uses two buffers in core memory and one may, be filled while the second is being written. The write routine M determines whether or not the tape is nearing the end; if it is, the message "READY TO SWITCH" is typed, and 3008 blocks later write-out is continued on another DECtape unit. The DECtape search routine is informed of the setting of the DT flag by the interrupt service routine lOSERV. A2 Page A21 contains the plotter service routines. The plotter attempts to draw a diagonal line from its previous position to its new position. Page A22 contains the arithmetic interpreter. tions. It calls routines to carry out indicated opera- This is the main "background" program for DZTAK. If there are no arithmetic state- D-ATAK executes a loop in the interpreter. ments in the source prOQTam, INTPGO EVERY INSTRUCTION TFORM “$031338 0 ARITHMETIC INTERPRETER LIST EMPTY LIST (ARITHMETIC AND LOGICAL STATEMENTS) FOR I CALL OUTPUT CONTROLLING ROUTINE EXECUTE INTERPRETIVE INSTRUCTIONS; CALL EXECUTION ROUTINES: DIGITI (STATIC) DIGITZ .. I FE XFER EL LOAD STORE DIGIT3 .. IFG DIGIT4 « IFBE PLOTF (START MOTION) PUFOR TTFOR BUFFERED OUTPUT —+ OUT SL3. 5TB SUBT DECTPE ADD DECR FORMAT PLACE FORMAT WORD ON WAITING LIST UNCONDITIONAL OUTPUT ADCSER SAM PLE DIGITAL INPUTS V CLOCK SERVICE I IN TE RR U PT EN Aa LE D ) smngsAriaLge STORE L 7 TELETYPE SERVICE ROUTI N E PROGRAM INTERRUPT SERVICE ROUTINE PUNCH SERVICE ROUTINE DECTAPE HAS HIGHEST PRIORITY SERIAL BUFFER SERVICE ROUTINE INTERRUPT IS ENABLED AFTER EACH PROGRAM INTERRUPT Figure A] DECTAPE SERVICE ROUTINE '_ ' lQS—E—R—v f Overall Flow (Run Time) A3 DISMISS INTERRUPT PROGRAM INTERRUPT START INITIALIZE ALL LISTS 25w (INPUT SYMBOL) GETSYM DISPATCH COMPILE BUFR: E UCGOI < UNCONDITION OUTPUT COMPILER COM PILE DGIN : > 235m ADCV COMPILE V ADCV: ACOMP c ' ARITHMETIc COMPILER a (END) COMPILE FORM: STOPCM 59m; INITIALIzE OPERATING SYSTEM COMPILE OUNT QUNT: (CARRIAGE -RETURN) HALT READ TIME FROM SR START OPERATING l Tom Figure A2 Overall Flow (Compile Time) A4 CONTROL LIST FOR ADC ATABLE. CHANNEL # ADDRESS ...... 1281° POSITIONS TERMINATOR gggggg CONTROL LIST FOR SERIAL/ PARALLEL CONVERTER BUFTAB, C(SCONTR) ADDRESS I - NUMBER OF INPUTS -I ADDRESS 25 IO POSITIONS ooooooo CONTROL LIST FOR DIGITAL INPUTS ' DTABLEP cooE=o BINARY INPUT TYPE CODE CURRENTCOUNT ADDRESS 32.0 POS|T|°N3 ‘ 1 ‘ GREY INPUT 7777 TERMINATOR RESET COUNT C ......... 77 7 T Figure A3 Input Device Control Lists FORMAT WORD [Oh 1213l41516-l7181911011i] -——————§ NUMBER OF 12-BIT WORDS * ——,+ DEVICE b NAME TYPE CODE FORMTD, ooo DIGITAL 1 OOI~ DIGITAL 2 o ——-> OIO DIGITAL 3 1 on DIGITAL 4- 2 Ioo PLOTTER 3 '0' PUNCH 4 ‘110 TELEPRINTER 5 III DECTAPE 6 TYPE CODE ADDRESS WE ...... . ..... 7 7 7 7 4 TYPE CODE ADDRESS ............ 7 7 7 7 ETC 7 IO 17 UNCONDITIONAL OUTPUT LISTS UTABLE, TYPE CODE CURRENT COUNT 0 -CLDK 1 —DEcINIAL FORMAT WORD 2 -OCTAL 3-MESSAGE OUTPUT RESET COUNT 9°“) POSITIONS LONG 7 7 7 T—TERMINATOR .......... FORMAT WORD RESET COUNT C(UCOUNT Figure A4 E - NUMBER OF UNCONDITIONAL OUTPUT STATEMENTS Output Control Lists A6 PROGRAM INTERRUPT HARDWARE FUNCT|ON C(PC)90 SERVICE DECTAPE ER SAVE C(AC),C(L) E RFLAG SERVICE DECTAPE FLAG SAVE YES DEC TAPE F LAG C(AC),C(L) DTFLAG N0 POP ammo C(AC) FROM LIST ENAB I NTERRUPT ERRORYES ORFLow (INT OVRNHALT) DISABLE INTERRUPT NO @Es NO YES SERVICE BUFFER BUFFER NO YES SERVICE TELEPRINTER TELEPR NO @Es NO . YES SERVICE PLOTTER PLTSER NO YES KEYBOARD ? ' N0 STOP THE PROGRAM YES EXTRANEOUS INTERRUPT (HALT) INTERR (Ex INTR) Figure A5 Interrupt Service Routines A7 CALLED FROM IOSERV CLKCLR IN STOPPING STATUS? CONTINUE 333qu “0 M +1—> SECONDS CLOCK' CLEAR FLAG ENABLE INTERRUP‘I’ SECONDS =60? I (WAIT FOR I SECOND) YES +1-> §ECNT o=> SECONDS +19 MINUTES YES» YES "° o=> MINUTES +19 HOURS NO I +1—> QCNT (l QUANTUM OF TIME ?) No :49 ? YES (RESET QUA NTU M) QCNTe— QUANT ANY ADC INPUTS? SERVICE ADC INPUTS ANY DIGITAL SERVICE DIGITAL INPUTS INPUTS ADCSER —- m ceou ANY UNCONDITIONAL OUTPUTS NO IRETURNTO POP I Figure A6 Clock Service Routine A8 SERIAL / PARALLEL BUFFER CALLED FROM IOSERV BUFFER _ CLEAR FLAG F’ INITIAUZE usr SET (3%?ng CLEAR FLAG ENABLE INTERRUPT +1—> BTEMPZ '55 -1=> BTEMPZ NO GET NEXT ADDRESS READ BUFFER STORE IN THIS ADDRESS 7 EXIT TO POP Figure A7 TELEPR Buffer Service Routine CALLED FROM 1% m “E32596 YES PRINT CLEAR FLAG GET NEXT CHARACTER CGHR‘QET’EE TER M INATOR ? CALLED FROM L95_ER_V was INTERRUPT ' l SEFTL28NE SETFngNE _ PUNCH IT IT V 7 JMP POP JMP POP Figure A8 Teletype Service Routine Figure A9 A9 Punch Service Routine lCALLED DISERV BY CLOCK SAVE . TYPE CODE . ADCSER - l Eta-5‘0 O=> COUNTER FROM . l SELECT CURRENT COUNT l REQUEST CONVERSION - No l YES DELAY 3O usoc GET STORAGE ADDRESS l l GET STORAGE ADDRESS RESET CURRENT COUNT l l READ CONVERTER EXECUTE IOI * C (COUNTER) l GREY STORE VALUE i N0 CONVERT GREY -> BINARY YES _ GET NEXT CHANNEL _ NUMBER STORE VALUE RNIINATOR GET NEXT TYPE CODE ‘ UPDATE LIST POINTER RETURN To C351 +‘ 9 COUNTER H $¢¥E No TE RMINATOR '2 CODE YEs RETURN TO CLOCK Figure A10 Analog—Digifal‘S‘ervice Routine Figure All A10 Digital Input ServiC'e Routine CALLED BY CLOCK SERVICE ROUTINE SET COUNT l COM +I-> ELEMENT 1 ”0 YES EM. ELEMENT 2T0 WAITING LIST FORMAT 1 CALLED BY ANY DEVICE FORMAT HANDIERS 1% FORMAT WORD ONTO LIST ELEMENT 3 -) ELEMENT I _ UPDATE POINTER BY +3 NO RETURN TO CLOCK SERVICE Figure A12 PRINT FORM ova“ HALT RETURN Unconditional Outputs TFORM TEST FORMAT WAITING LIST CALLED BY INTPGO l DISABLE INTERRUPT FOPI LOOK-UP DEVICE HANDLER @ms RETURN TO INTPGO NO TOP OF UST LOOK-UP FORMAT I-> FORM LIST I SLI OE-UP UST ENABLE I NTERRUPT 4 ° 5 1 PLOT F PUFOR TTFOR 6 2 7 3 mmTI l mmTz PROCESS C (FORM) FOPI mst mmT4 DECTPE Figure AI 3 L‘ T RETURN TO TFORM Figure AM TEST STATUS OF WAITING UST Call Output Device Format Routines AH Format Output Routines iCALLED BY FOPI FETCH ADDRESS OF VARIABLE I FETCH VARIABLE l +19 ADDRESS I STORE VARIABLE AT ADDRESS (AT VARIABLE) I OUTPUT VARIABLE I RETURN TO FOPI Figure‘AI5 Digital Output Format Routine CALLED BY FOP! DISABLE INTERRUPT ' PUFOR C(FORM) ONTO —H WAITING LIST ENABLE INTERRUPT NO —1 => 0 FLAG I GET FORMAT # CONVERT TO OCTAL ASC II (OCTAL) I 0 => 0 SIEE PLACE IN BUFFER (OSUBR) CALL TELETYPE FORMAT ROUTINE (TGO’I) SET PUNCH BUSY FLAG I RETURN TO FOPI Figure A16 Punch Format Routine A12 (FORMAT) CALLED BY FOP! TTFOR C(FORM) ONTO DISABLE TELETYPE BUSY _? 1 N T E RR U PT __. RETURN To WAITING LIST _—. ENABLE INTERRUPT , €921 (FORMAT) 0 => 0 FLAG l GET FORMAT # CONVERT TO ASCII OCTAL O S) OSIEE (OCTAL) PLACE IN BUFFER (OSUBR) FETCH CODE WORD T601 TERMINATOR NO GET HRS CONVERT 10—. DECIMEL GET VAmABLE VAWABLE PUT IN BUFFER SAVE “’ _. 2335522 “" CONVERTTO DEaMEL PUT IN BUFFER ._. away IN GET ADDRESS l . ADD 5le BITS V l ' STORE (ADDRESS or TABLE) l GO TO OEXIT ' PUT TABLE IN BUFFER Figure A17 Teleprin’rer Forma’r Rou’rine A13 FOR MlNUTES, SECONDS m ADEfiESS + 1 SAME —' BUFFER H OR TELETYPE CALLE FORMAT ROUTINES OFLAGIO? DI INTO TELEPRINTER BU FFER BUFFER I T DZ INTO PUNCH BUFFER 02 INTO TELEPRINTER BU F FER l I 03 INTO TELEPRINTER BUFFER 03 INTO PUNCH BUFFER I D4 INTO TELEPRINTER BUFFER I SPACE INTO PUNCH BUFFER SPACE INTO TELEPRINTER BUFFER J I XIT SUBROUTI NE Figure AI 8 OSU BR OEXIT CALLED BY TGOI PLACE cm: IN PUNCH BUFFER - ‘ PLACE CR.I.F IN TELEPRINTER BU FF ER 0FLAG=D‘ 1L J SET BUFFER POI NTER PUNCH FIRST CHARACTER SET BUFFER POINTER TYPE FIRST CHARACTER i l EXIT TO PU FOR SET BUSY FLAG 0‘) TFLAG J EXIT TO FOPI Figure A19 A14 OEXIT CALLED BY TELEPRINTER AND PUNCH FORMAT ROUTINES ‘ OCTAL l CONVERT C(AC) TO OCTAL ASCII l RESULTS T0 01, 02,03,134 l EXIT ROUTINE CALLED BY TELEPRINTER AND PUNCH FORMAT ROUTINES DECMAL CONVERT C(AC) TO DECIMAL ASCII i RESULTS TO 01.02.015.04 l EXIT ROUTINE Figure A20 Conversibn Routines 7A15 CALLED BY FOPI PM u H TO NUMBER or WORDS IN BUFFER SWITCH TO WRITE NO 2991.4 PLACE FORMAT WORD IN BUFFER I He won I COUNT I GET CODE TERMINATOR ? EXIT ROUTINE TO FOP! PLACE HRS +2-9WORD IN BUFFER COUNT GET VARIABLE AND SAVE IN TS ADDRESS +1 I PLACE WORD IN Figure A2I BUFFER DEC’rape Forma’r Routines A16 DWRT l SWHCH ALL BUFFER PGNTERS l 0‘€> WORD OF NEW BUFFER l+v—> BLOCK TYPE "READY TO swncn“ swncu UMT NUMBERS +3=> 92925 0‘=> HRST WORD —1 => FIRST woao v TYPE DECTAPE ausv ? "TIMING ERROR" 59M PUTRFORMAT wo ° 0" WAITING LIST SET BUSY FLAG Figure A22 DECfope Write A17 5X” To FOP1 —-—— 99 DSTART WAIT SEARCH FOR BLOCK SAVE DSERCH (JMS WAIT) C(PC)=> WAIT I LOAD WRITE FUNCTION +19 DSTA RT I LOAD MAC REGISTER a WAIT FOR FLAG WAIT NO JMP EXIT 0 => FUNCTION. MOTION WAIT FOR FLAG WAIT DTFLAG l CLEAR FLAG CLEAR BUSY FLAG I ' JMP C(WAIT) ==> C(PC) (JMP i WAIT) EXIT Figure A22 DEC’rope Write (continued) AI8 DSERCH lCALLED BY DWRT S ET DIRECTION TO FORWARD I -10 '> DCNT DTURN +1.) DCNT ERFLAG MOVING FORWARD SET DIRECTION TO REVERSE SET DIRECTION TO FORWARD I l 'BL°°K=> -IBLOCK-1) ”BLOCK => DBLOCK I LOAD UNIT. MOTION. FUNCTION WAIT FOR FLAG 21m PM LOAD MAC O—G WAIT FOR FLAG WAIT Figure A23 DEC’rOpe Search A19 ? THIS BLOCK +0 BLOCK N0 3 o ? YES THIS BLOCK BLOCK - MOVING IN CORRECT DIRECTION ? DTURN DTURN TURN AROUND EXIT SEARCH ROUTINE (TO DWRT) CONTINUE IN THIS DIRECTION ERFLAG CLEAR FLAG STOP TAPE I TYPE "0T ERROR" Figure A23 CLEAR BUSY FLAG JMP EXIT DECfape Search (continued) A20 CALLED BY FOPI PLACE C(FORM) ONTO WAITING ———> LIST ENABLE INTERRUPT DISABLE INTERRUPT RLOTTER BUSY 2 RETURN T0 FOPI SET BUSY FLAG —1 => PWAIT pCOUNT FETCH x STOREIN AT ADDRESS X/4 => TX FETCH Y STORE IN AT ADDRESS Y/4 => TY C(cp) = C(ppgwimp> PWAIT) N0 I l' _‘ (JMS RWAII) 1 €> PCOUNT CLEAR FLAG EEI§§§ STORE YES = MFLAG Exn T0 FOP1 —4 +> Rx REN LEFT +4 €> Rx PEN RIGHT SET DONE FLAG WAR O=> WAN +1-> (PWAW) MFLAG (RwAn) PCOUNT ”0 €> RY DRUM DOWN EflT T0 POP Exn TO & —1 +1€>PY T YES $ $’ WAR WAW (PWAIT) (PWAIT) EmT T0 FOP! ___ YES Figure A24 Plotter Format Routines A2] INTPGO FETCH NEXT INSTRUCHON TEST STACK UMWS WITHIN NO PMNT "STACK LIMITS ERROR" ? HALT YES TEST WAHTNG IJST STATUS TFQRM ADDRESS OPERATION NO BITS 0-14 9 BITS 0-1LOOKUP _ 3' LE“ _ ‘ STACK OPERATION BITS 2-11: RELATIVE ADDRESS YES i BITS 7—11: LOOKUP 2 = STORE MAKE ABSOLUTE; STORE IN PSEUDO PROGRAM COUNTER I= LOAD IFE m In; IFBE OUT BITS 2—11= RELATIVE 1 2 = 3 =4 = 5 = = <sufg =‘6/ sum- :10 ADD = II DECR =12 RETURN +1 —> PSEUDO PROGRAM COUNTER Figure A25 BITS 2—11: RELATIVE ADDRESS; ADDRESS; MAKE ABSOLUTE MAKE ABSOLUTE FETCH AND PUSH ONTO STACK FETCH TOP OF STACK; STORE IT ; I Arifhmefic lnIerpre’rer Interrupted by Clock and l/O Devices APPENDIX PROGRAM PROBLEM I: 2 EXAMPLES A SIMPLE PROGRAMMING PROBLEM An in situ pressure, temperature, and salinity sensing instrument is lowered into the ocean. Data is transmitted along a single conductor cable and is brought into the computer using a serial buffer input. We want to sample the ocean in the Following manner: I . From the surface to 100 meters, record at each meter the pressure, tem— perature, and salinity. 2. From 100 meters to I000 meters, record the pressure, temperature, and salinity whenever the absolute change of temperature is greater than .05°C or the absolute change of salinity is greater than .02 "/00. Also record the pressure, temperature, and salinity every I00 meters from 100 meters to I000 meters. Let us assume that the oceanographic sensors have the following precision; that is, equal to'the following: I unit of pressure = I meter I unit of temperature I unit of salinity = = .0I .OI°C °/°° A program to accomplish this sampling is written as follows: FORM: PRES, TEMP, COND I, PRES, TEMP, COND [ : OUTP (1, 1 : IFGR PRES, BUFR : - DCTP) 144; GOTO 2 IFGR (PRES -@PRES), 1; OUTP (1, DCTP) , GOTO 1 A23 unity is 2 (PRES -@PRES), 144; ‘IFLS (TEMP -@TEMP), 5;' (COND -@COND), 1; GOTO 2 OUTP (1, DCTP); GOTO 2 |FLS : IFLS END This program says, in effect: BUFR: PRES, TEMP, COND Three variables named PRES, FORM: TEMP, and COND are to be sampled using the serial buffer. 1, PRES, TEMP, COND Three variables named PRES, TEMP, and COND are to be outputted together. :OUTP (1, DCTP) This says output is to be recorded on magnetic tape. l:lFGR PRES, T44; GOTO 2 This states that if the absolute change of pressure is greater than 100 (1448), the control of the sampling will be transferred to statement number 2; otherwise, it will go to the next line. :lFGR(PRES -@PRES), l; OUTP (l, DCTP) This line states that if the absolute change of the pressure between two successive readings is greater than 1, output onto magnetic tape according to Format l; that is, OUTP (l, DCTP) which means store data on DECtape using Format l; otherwise, go to the next line. GOTO i This says to go to statement number 1 and test the environment again. 2: IFLS IFLS (PRES -@PRES), 144; IFLS (TEMP -@TEMP), 5;' (COND —@COND), 1; GOTO 2 This states that if the'absolute change of pressure is less than 100 meters 'or the absolute change of temperature is less than .05°C, or if the absolute change in salinity is less than .02 °°§ then go to statement number 2 which begins the tests over again. A24 Otherwise go to the next line. :OUTP (1, DCTP); GOTO 2 This says to output data onto magnetic tape and transfer control to statement number 2. The sampling and testing procedure begins again. END This last instruction is self explanatory. As shown in the above description, the computer has been programmed to make logical decisions specified by as a means can the investigator in sampling the marine environment. of storing data. It also has been used In the above instance, data has been stored on magnetic tape and be used in other programs to determine variables such as Sigma T, anomaly ofspecific volume, and sound velocity. Table Al shows a portion of the calculated output from stored data on magnetic tape transport number 1 that can be run immediately after the sample prOgram. INPUT SOURCE? TABLE Al REDUCED DATA SALIN. SIGMA-T T OBSERVED VALUES DEPTH TEMP. DELTA-A SOUND—VEL ‘ ' 0000 8.35 34.17 +26.590 0001 8.28 34.19 +26.616 +145.53 +143.08 +l483.4 +140.45 +137.20 '+1482.9 +1482.4 +1482.0 +l483.2 0002 8.20 34.21 +36.644 0003 8.13 34.24 +26 .678 0004 8.05 34.26 +26.706 0005 7.98 34.28 +26.732 +134.59 +132.19 0006 7.91 34.31 +26.766 +128.98 0007 7.83 34.33 +26.793 +126.38 +1481.7 0008 7.76 +26.819 7.69 0010 7.61 34.39 ,+26.873 +123.94 +121.45 +118.89 +1481.4 0009 34.35 34.37 PROBLEM 2: +26.845 +1482.7 ' +1482.2 +1481.2 +1480.9 A MORE SOPHISTICATED PROGRAM For a better demonstration of the flexibility of this programming technique, consider the follow- ing program . An investigator desires to use a thermistor, pressure, and conductivity chain towed from an oceanographic vessel. He will sample at the same time a telemetering buoy that transmits A25 data from these current meters. In addition, he desires to obtain Loran lines of position and sample the ship's speed and ship's heading. l . These can be summarized as follows: Log the time on magnetic tape every 50 meters of distance traveled. Ship's speed is l0 knots; it will cover 50 meters in approximately 9.70 sec. 2. Sample each thermistor, conductivity, and pressure sensor in the chain every half second. 3. This defines the program time as QUNT: 62. Sample the Loran, ship's speed, and ship's heading every 2 sec, thus, Ll(4, L2(4, SP(4, HEAD(4. 4. Conditional Output Since the near—surface values of temperature and - conductivity will fluctuate the most, it might be most desirable to set thres— holds so that relatively large changes of temperature and salinity will be However, deeper values will not change as significantly, so small stored. incremental changes have more meaning and thus should be outputted and Arbitrary values have been chosen and are shown in Table A3. stored. Determination of Octal Constants to be Used in Testing - In order to test the variable it must be determined to what its unit value corresponds. This is found by dividing the range of the thermistor, pressure transducer, or other device by the precision of measurement; thus if the range of the thermistor is 20°C and the precision of measurement is 1 part in 2000, then each unit equals .0l °C . TAB LE A2 SUMMARY ' Variable Thermistor Pressure Precision Range 20°C .. l00 meters UNITY Corresponds to 1:2000 3 .o1°c lz2000 3" .05 meters .01 Conductivity 20 °/0° 1:2000 2 Vane 360° 1:120 2 3° Compass 360° 1:120 2' 3° g l centimeter per second , Rotor A26 °°° General Output Requirement 5. Every variable should be recorded on magnetic tape it the specified conditions are met. Plot T0 versus SO if it is recorded. Type Current Meter Data in Decimal if it is recorded. Punch TO, P0, and SO if they are recorded. By outlining the problem, the investigator'will have thresholds established for recording changes in the variables listed in Tables A3, do the work A4, and A5. Figure A26 shows the equipment needed to . The/program listing to sample these variables and record those which exceed the established thresholds is given below. ADCV: .TO(0), T10), T2(2), T3(3), T4(4). T5(5), P0(6),' PT(7), P2(10), P3(H), P4(T2), P5(13), 50(14), 51(15),' 52(16), 53(17), 54(20), 55(21) BUFR V1, C], RI, v2, C2, R2, V3, C3, R3 : DGlN: QUNT; FORM; FORM: FORM: L1 (4, L2(4, SP(4, HEADM 62 I, T0, T1, T2, T3, T4, T5, P0, P1, P2, P3,' P4, P5, $0, $1, $2, $3, $4, $5 2, T0, SO 3,v1 ,Cl ,RT ,V2,C2,R2,V3,' C3 R3 4, T0, P0, 50 5, L1, L2, SP, HEAD, CLOK <5, DCTP, 22> OUTP(T, DCTP); OUTP(2, PLDT); OUTP(3, TYPE); OUT P(4, PNCH) lFEQ (V1+C2), 3; GOTO T IFEQ (V2+C2), 2; GOTO t IFEQ (V3+C3), 1; GOTO 1 IFLS RT, I2; IFLS R2, I2; IFLS R3, 12; GOTO 2 , FORM: FORM: l 3 ' —l OUTP (3, TYPE) IFLS (T0 -@TO), l2; IFLS (P0 —@PO), I2; IFLS (SO -@SO), 5;' IFLS (T1 -@Tl), 7; IFLS (P1 -@P1), l2; IFLS (ST —@ST), 5;' IFLS (T2 -@T2), 5; IFLS (P2 -@P2), 2; IFLS ($2 -@'52), 4;' IFLS (T3 -@T3), 3; IFLS (P3 —@ P3), 6; IFLS (S3 —@ S3), 3;' IFLS (T4 -@ T4), 2; IFLS (P4 —@ P4), 4; IFLS (S4 -@ S4), 2;' IFLS‘(T5 -@T5), 2; IFLS (P5 -@ P5), 2; IFLS ($5 -@ 55), T;' GOTO 2 OUTP(T, DCTP); OUTP(2, PLDT); OUTP(4, PNCH); GOTO3 END , A27 - TABLE A3 Depth in Meters MultiThermistor Variable plexer Name Channel # , MULTIPLEXER A-D CONVERTER ASSIGNMENT (ADCV) (Data Originating in Thermistor Chain) Record if Pressure Multi- Conductivity MultiVariable plexer Record if Change of Variable Name Channel # Change of Absolute Absolute plexer Record if ' Absolute Name Channel # Change of TO (0) .l°C PO (6) .5 meter SO (I4) .05 °°° TI (l) ..07°C PI (7) .5 meter SI (I5) .05 °°° T2 (2) .05°C P2 (IO) .5 meter 52 (I6) .04 °°° 30 T3 (3) .03°C P3 (I I) .3 meter S3 (I7) .03 °°° 40 T4 (4) .02°C P4 (I2) .2 meter S4 (20) .02 °°° 50 T5 (5) .Ol°C P5 (I 3) .1 meter 55 (2i) .OI 0 IO 20 ' °°° 83V DIGITAL INPUT BUFFER ASSIGNMENT (DGIN) SERIAL DATA INPUT BUFFER ASSIGNMENT (BUFR) (Data Originating in Moored Current Meter String) TABLE A4 TABLE A5 (Data Originating in Ship's Instrumentation) Vane Rotor Compass Variable Variable Name Name Record/if Variable Name Record if Variable Name ' Time Gray Multiple Code ? Current Meter I VI Cl Vl + CI = 9° RI Rl > IO Loran Line LI (4 Current Meter 2 V2 C2 V2 + C2 = 6° R2 R2 > ID Loran Line L2 (4 Current Meter 3 V3 C3 V3 + C3 = 3 R3 R3 > ID Ship's Speed SP (4 Ship's Head HEAD I4 yes SHIP'S KOINSTRUMENTATION MOORED CURRENT METER STRING 4L SERIAL/ PARALLEL PARALLEL BUFFERS BUFFER (BUFR) (DGIN) ——: PARALLEL 1388 ADCV TELETYPE 33- ASR PDP-8 COMPUTER PAPER TAPE PUNCH 75B * a , 100 CPS CLOCK 555 / 552 (ADCV) 63V 139 DECTAPE (CLOK) MULTIPLEXER CONTROL X-Y PLOTTER Y THERMTSTOR CHAIN v v PARALLEL BUFFERS H L - - H, OUTPUT CONTROL SIGNALS Figure A26 Equipment Configuration for Problem 2 - Dl-ITAK ADDENDA STANDARD DZTAK CLOCK IOT'S IOT I Skip 4 Clock flag IOT 2 Clear Clock flag and Connect Flag to interrupt IOT 4 Disconnect Clock flag from interrrupt = O INSTRUCTION LIST I. Skip if Flag 0 2. Clear Flag and enable Clock Disable Clock IOS . If: E INI ' AM N K AL “I J R202 ‘L _ abcx 1 AT p K AS R40t T T 80 <>—-———~ ”BE ENABLE R202 BF R BH u BJ v ‘= ex M8 mrsq 3L 3‘8 BM an a? an as Lat SPARE-8U SPARE-3V Standard DKTAK Clock Refer to FLIP CHIP Catalog for further information about module logical design. u Eflfifllafl Los Washington, D. C. Parsippany, N. J. Palo Alto Ann Arbor Angeles Chicago Denver Huntsville Orlando Pittsburgh Carleton Place, Ont. Reading, England Paris, France Munich, Germany Sydney, Australia - - - - ° 0 0 0 - - 5444 ' - PRINTED IN U.S.A. 20-6/65
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies