Google
 

Trailing-Edge - PDP-10 Archives - steco_19840320_1er_E35 - 10,5676/teco/doc/tec200.rnd
There is 1 other file named tec200.rnd in the archive. Click here to see a list.
.vr user t f
.TITLE TECO version 200
.ap.lm0.rm79
.skip 9
.C;The new and improved
.S2
.C;TTTTTTT###EEEEEEE####CCCCC#####OOOOO#
.C;###T######E#########C#####C###O#####O
.C;###T######E#########C#########O#####O
.C;###T######E#########C#########O#####O
.C;###T######EEEEE#####C#########O#####O
.C;###T######E#########C#########O#####O
.C;###T######E#########C#########O#####O
.C;###T######E#########C#####C###O#####O
.C;###T######EEEEEEE####CCCCC#####OOOOO#
.B3.c;Version 200
.b2.c;January 21, 1981
.b2.c;Stevens Institute of Technology
.B15
Copyright (c) 1980, 1981 by
.BREAK
Stevens Institute of Technology, Hoboken, New Jersey, 07030.
.BREAK
All rights reserved.
.BREAK.B
This software is furnished under a license and may be used and copied only in
accordance with the terms of such license and with the inclusion of the above
copyright notice. This software or any other copies thereof may not be provided
or otherwise made available to any other person. No title to and ownership of
the software is hereby transferred.
.BREAK.B2
The information in this software is subject to change without notice and should
not be construed as a commitment by Stevens Institute of Technology.
.page
.ST Introduction
.hl1 Introduction
This version of TECO is a complete or almost complete rewrite
of TECO %124A. Some of the things that this version does are quite a bit
different then the previous versions of TECO.  This version of TECO does not support KA-10
systems.
.hl1 Concepts
There are several concepts that should be first understood before
attempting to understand the rest of this document.
.lm+5.hl2 Text buffer
 A text buffer is a buffer that contains text.  This can either be a Q-register
or an editing buffer.  A text buffer can have associated with it an input
file, output file, form feed flag, EOF flag, page number, and an EB flag.
 If the user has no more pointers to a text buffer, then all open files
associated with it will be closed, as normally done by an EX
command.  Pointers include the current editing buffer, having a Q-register
pushed on the stack and Q-registers.  To learn more on how to associate
files with Q-registers refer to the E. command.
.HL2 Line terminators
The line terminating characters are: carriage return, line feed, vertical tab
and form feed.
.hl2 Spacing characters
The spacing character are either a space or tab.
.hl2 Punctuation characters
These are the characters period(.), comma (,), questin mark (?) or
exclaimation point (!).
.HL2 Word
 A word is a group of characters that are delimited by a line
terminator, spacing character or punctuation character.  Spacing
characters are either a space or a tab.  Punctuation characters
are periods (.), comma (,), question mark (?) or exclaimation point (!).
.lm-5
.HL1 New features
.lm+5.HL2 Q-registers
Several changes have been made to the Q-register processing in TECO.
TECO now supports long Q-register names. There are also a few new
single character Q-register names.
.lm+5.hl3 New Q-register name format
Q-register names may now be enclosed in parentheses.
Q-register names
in this new format may be longer than one character.  For example
the following is now a legal command.
.b.lm+10
_.U(POINTER)$JB,Q(POINTER)K$$
.LM-10.B
It should be noted that casing of the names is NOT ignored.
.hl3 '.'
When TECO is run, the initial setting is as if an E.(.) command had
been given. Therefore, the '.' Q-register is being edited.
.hl3 '?'
This Q-register is set to the command string when an error occurs.
Note that unlike the result of a '*i' command the command put into
this Q-register will include both terminating altmodes.
.HL3 'TEXT-BUFFER'
This Q-register is used only for purposes of the E$ command. This is
a predefined name that always refers to the current editing buffer.
.hl3 'COMMAND-BUFFER'
This Q-register is also only used for the E$ command. This is the predefined
name for the section of the screen where typein will be echoed, and typeout
printed.
.hl3 'ERROR-TEXT'
This Q-register will contain the complete text of the last error message.
Note that when TECO is in video mode (EVON$ command given), and this
Q-register is displayed, TECO will not print out the error message in the
'COMMAND-BUFFER' section.
.hl3 '%'
This Q-register has no special purpose. It may be used for any
purpose the user wishes.
.hl3 'AUTO-COUNT'
The Q-register contains a number that is the number of complete commands
that are to be processed before the 'AUTO-BUFFER' Q-register is to be executed.
The number must be greater than zero for 'AUTO-BUFFER' to be executed.
A complete command is any command that terminates with two escape characters.
.hl3 'AUTO-BUFFER'
This Q-register contains the commands that are executed after every
'AUTO-COUNT' commands.
.lm-5
.hl2 E commands
.LM+5
.hl3 E_<(Q-register)
This command will cause the file specification for the input file associated
with the Q-register to be stored into the current editing buffer.
.hl3 E_>(Q-register)
This command will cause the file specification for the output file associated
with the Q-register to be stored into the current editing buffer.
.hl3 nEJ(Q-register)
This command has the same effect as a 'nJ' command executed in the specified
Q-register.
.hl3 File specification parser
The file specification parser has been changed again.  The basic format for
file specifications is:
.b.c;Node::Device:File.Extension[Path] /Switches
.b
The support for editing from one node to another node is not yet
supported in TECO, since it is not yet supported in TOPS-10.
Switches are optional on the file specification. The following are
the standard switches that are valid on all file specficiations.
.lm+5
.HL4 DEFAULT
Cause the file specification defaulting to be done by the initial defaults.
.HL4 MODE:mode
This will specify the mode the file is to be read in.  The only supported
modes currently are: ASCII, LSA, and SIXBIT (This is the COBOL SIXBIT
file format).
.HL4 NODEFAULT
This switch causes no defaults to be applied to this file and stores
no defaults from this file.
.hl4 PROTECTION:nnn
This switch will specify the file protection.
.hl4 VERSION:mmmnn(eeeeee)-w
This switch will specify a version number that is to be stored into the
RIB of the file that is being output.
.LM-5
.hl3 TMP:
You can now use the ER and EW commands to the device TMP:.  This will
cause a TMPCOR file to be read or written.
On an ER command if the file does not exist in TMPCOR, TECO will
try to find it as nnnXXX.TMP on disk (where nnn is the job number,
and XXX the file name). On an EW command TECO will write the
file into TMPCOR when the file is closed if it will fit, otherwise
it will write it into DSK:nnnXXX.TMP. Note that it will start
writing the file to disk as soon as it is sure that it will
not fit into TMPCOR.
.hl3 EV command extensions
This command now contains a few new extensions.  This command will now
return values for parameters.  The valid parameters are:
.ls
.le
NODE - Return the node number the user is on.
.le
LINE - Return the line number of the terminal the user is on
.le
SCREEN - Return the screen size as two octal numbers.  The width is in
the left half and the length in the right half of the number.
.le
WINDOW - Same as SCREEN
.els
The EV command has a few action verbs associated with it.  The verbs and
the action take are listed below:
.ls
.le
ON - Turn on the video mode processing
.le
OFF - Turn off the video mode processing
.le
IMMEDIATE - Turn on the immediate mode video processing (Not implemented)
.le
REFRESH - Cause the screen to be refreshed.  This is useful if the
person does not have the terminal gagged and people send to him.
.els
.hl3 EQ command
This command will write out the text contents of a Q-register into
a file. The format of this command is:
.b.C;EQ(q-reg)file.spec$
.b
where the "(q-reg)" is optional. If it is not given Q-register "*" is
used for the command. After execution of this command a copy of
the Q-register has been written into the given file.
.hl3 Extension to EI and EP command
The EI and EP commands have been extended to take an optional Q-register
name as an argument. The format of the Q-register
name argument is the same as in the EQ command.
.hl3 E. command
This command allows the user to select the editing buffer.  It will
change the editing buffer to another Q-register.  It will create a text
buffer for the Q-register if there is no buffer associated with the
Q-register when the command is executed.  The format of this command
is as follows:
.B.C;E.(q)$
.B
The 'q' is the name of the Q-register which is the new editing buffer.
.hl3 E$ command
This command will define  what is to be displayed on the users screen.
The E$ command will take two arguments.  The arguments are the line
numbers that the contents of the Q-register is to be displayed on.  The
command format is:
.B.C;n,mE$(q)
.B
The 'n' and 'm' are the line numbers, in the range
1 to the number of lines on the screen.
The 'q' is the name of a Q-register.
This command is only valid if the TECO is in video mode.
.hl3 ED extensions
The ED command will now take the following switches:
.LM+5
.hl4 RUNOFFSET:n
This will specify the RUN offset for the RUN UUO.
.hl4 CORE:n
This will specifiy the number of pages of the memory to use for the RUN UUO.
.lm-5
.hl3 EL switches
The following are the allowed switches for the EL command.
.lm+5
.hl4 APPEND
Append to the log file.
.hl4 NOINPUT
Do not output the type in to the log file.
.hl4 NOOUTPUT
Do not output the type out to the log file.
.lm-5
.hl3 ER switches
The following are the only allowed switches for the ER command besides
the default switches:
.lm+5
.hl4 SUPLSN
Suppress the reading of the line sequence numbers.
.lm-5
.HL3 EB switches
The following are the allowed switches for the EB command.
.lm+5
.HL4 GENLSN
This switch is equivalent to the /OMODE:LSA switch.
.hl4 IMODE:mode
This switch will specify the input mode of the file being read.
.hl4 INPLACE
This will cause the file to be edited in the path it was found it.
.hl4 MODE:mode
This switch will set the input and the output modes.
.hl4 OMODE:mode
This switch will set the output mode.  For a complete list of the different
modes that are allowed please see the default switch section.
.hl4 READONLY
This will set the switch as being only read.
.hl4 SUPLSN
This switch is the same as /OMODE:ASCII
.lm-5
.lm-5
.HL2 FW command
 This commad will allow the user to search for the nth word.  The command
format is:
.b.c;argFW$
.b
.hl2 FK command
 This command will allow the user to Find and Kill a string.  The string
that is searched for will be deleted from the user's editing buffer.
The command format is:
.B.C;FKsearch-string$
.B
.hl2 '%' command
 The '%' command will now take a numeric argument. If this argument
is given the Q-register is incremented by the value of the argument.
If no argument is given the Q-register is incremented by one. The
command still returns the resulting value of the Q-register.
.hl2 Control D
The Control D command allows the user to move up or down on the
screen.  It will deterine the position on the next line to move the cursor.
This command is similar to the L command except that the X position is
no changed to the beginning of the line.
.hl2 '"' command
 The '"' command has been extended to provide the capability of an
IF THEN ... ELSE ... ENDIF construction. If the first character after
the single quote (') following a conditional is a double quote ("), the
double quote command will be executed with a true value if the previous
condition was true, and with a false value if the previous condition
was false.
.hl2 Control T
 The control T processing has been extended.  Two new options
have been added to the colon control T processing (:_^T).  The new
options will set the terminal into packed image mode and remove it
from packed image mode.
.lm+5
.hl3 :-3_^T
This command will put TECO into packed image mode input for your terminal.
.hl3 :-4_^T
This command will put TECO into normal input mode for your terminal.
.lm-5
.hl2 Immediate commands
The following immediate commands have been added.  These commands only
work in screen mode.
.lm+5
.hl3 Control B
This command will do a 1R.  It will cause the pointer to be moved
backwards one character.
.hl3 Control D
This command will do a 1^D.  It will cause the pointer to be moved down
one line on the screen.
.hl3 Control U
This command as the first character of a command will cause the pointer to
be moved up one line on the screen.
.hl3 Control W
This character as the first character of a command will cause a 1FW
command to be done.  This will move to the end of the next word.
.lm-5
.lm-5
.HL1 External Changes
.lm+5
.HL2 KA-10s
KA-10 processors are not supported in this version of TECO.
.hl2 EO level
The EO level is now at 4.  If you have problems with old TECO macros
passing arguments, then set the EO level to 3 and TECO will not enforce
the argument checking for you.
.HL2 '*i'
The immediate command '*' now will reprompt the user upon execution
of the command.
.hl2 Argument validation
TECO now enforces the argument checking of commands much better.
It will give an error message if you attempt to pass arguments to
commands that don't require them.  It will also complain about
missing arguments much more.
.hl2 Command level error type out
The '?' and '/' commands for error type out are now valid until the
next command is executed.  The '?' command will now type from 10 characters
before the first argument for the command.
.hl2 N search
At the end of an N search that fails the last buffer of the file will still
be in the text buffer for editing.
.lm-5
.ifnot user
.HL1 Internal Changes
This is a rewrite of TECO 124A.  All interfaces have changed if you have
any local modifications to TECO they will have to be rethought.
.HL1 Installation instructions
.hl2 Compilation
There is one pair of feature tests to be set for compiling TECO. These
are the FTKL/FTKI switches. If FTKL is set (this is the default), TECO
will be compiled for a KL-10 processor. If FTKI is set, TECO will be compiled
for a KI-10 processor. The KI-10 version will run correctly on a KL, it
will just not run as efficiently.
To assemble for a KI-10, an FTKL==0 and a FTKI==-1 should be added
to the beginning of the assembly of TECUNV.MAC.
.HL2 Loading
TECO is PSECT'ed, therefore when it is loaded, the PSECT origins must
be specified. There are five PSECTs (in addition to .LOW.):
.ls1
.LE;IMPURE - This is the impure data area. The origin for this PSECT
should be 140 for a non-debug copy, and somewhere past the end of
DDT for a debugging copy.
.LE;_.ONCE - This is the once-only initialization code which writes out
the error file, and builds the error message index. This should be loaded
somewhere past the end of IMPURE.
Note that if TECO is to be loaded with symbols, the symbols should
initially be loaded into the .ONCE PSECT with the LINK switch
/SYMSEG:PSECT:.ONCE. The once-only code will move the symbol table
into the high-segment after the error index has been built.
.LE;_.TXTPT - This PSECT contains the pointers to the error messages. This
data is copied by the once-only initialization after the end of the high
segment and then deleted.
.LE;_.TEXT_. - This PSECT contains the text of the error messages.
Once-only will write this text out into TECO.ERR or move it into the
high-segment as appropriate.
.LE;CODE - This PSECT contains the pure code. It will be turned into
a high-segment by the once-only code. The base address of this PSECT
must be at a page boundary plus 11(octal = .JBHDA plus one). This must be the
PSECT containing the highest addresses.
.els
Note that the last thing before the /GO for LINK must be a /SET:.LOW.:value,
where value is the base address of the CODE PSECT. This ensures that
all of memory between the low segment and the end of CODE will be addressable.

There are a few restrictions in the order modules are loaded in. The module
TECINI must be the first module loaded. This module contains definitions of
symbols to represent the start of each PSECT. These are used by the once-only
code. The last module loaded must be TECONC.

If you do not desire to support certain types of terminals, they can be
excluded at load time by not loading the module that contains the support
routines. The module TECDUM contains definitions of the required symbols
to cause the terminal types which are not being included to act like
the CRT terminal type.

When TECO is loaded, the file TECONC.EXE is produced. This is then
run to do the final fixups to the core image. It will type out
information as to the positioning of the various PSECT's, and then
ask four questions. The first two are in reference to error messages.
Each error and warning message has a level associated with it. This
level is based on the expected frequency of occurance of the message.
This value is used to determine whether the message should reside
in memory, or on disk in TECO.ERR. The first question TECONC asks
is the highest level message for which the first line should be
kept. The message level is an octal number which runs from 0 to 77.
A good value for the first line messages is one. This will cause
all the warning messages (currently there are only two), and the
messages seen most often to be kept in core. The second question is
for the highest level of continuation message to be kept in memeory.
A good choice for this value is zero, which will only keep the long
text of the TECEEE error message in core (this message would otherwise
be untypable, as it would be impossible to read it from the file).
If 77 is given as the answer to both message level questions, all of
the message text will be kept in core, and no error file will be written.

Next, TECONC will ask for the initial command string.  This command
string is executed just before any EB/ER/EW commands for CCL entry.
This command string is used to read in TECO.INI, and do any
other general initialization needed.  The command string may contain
any TECO commands, any should be ended with two consectutive altmodes.
The command string used at Stevens is:
.i 5
:EIDSK:TECO.INI[,]/NODEFAULT$"F:EITED:TECO.INI/NODEFAULT$'$$

The next two questions TECONC will ask are about patching space.
It will ask about how much patching space to allocate in the high and low
segments.
Finally, TECONC will ask whether the symbol table should be kept. If
it is to be kept, it will be moved into the high segment.

After the questions are answered, it will write out the error file, fix
up the CODE psect, and make it into a high segment. It will then
exit, allowing the core image to be saved.
The files TECO.EXE and TECO.ERR can now be put up on SYS:.

The TECO.EXE and TECO.ERR files must always be kept together, since
the first word of TECO.ERR contains the UDT when it was created. This
date/time will be checked when TECO opens the error file to make sure
that it is the correct version of the file. This is necessary because
the TECO.ERR file contains addresses of items to be typed during
error printout.

To just build TECO including all terminal types with all default
parameters, use the control file TECO.CTL.
This may also be used as a guide to building a customized copy of
TECO.
.HL1 Beware
.HL2 TOPS-10
	TECO uses the ENQ./DEQ. facility to place a lock on EB'ed files
to avoid having two people editing the file at the same time. The
string which TECO locks is the complete file specification of the
file. This can lead to problems if the file is nested in a few SFD's,
as the monitor places a limit of 30 characters on the length of the
string being locked. To allow these files to be locked, the
symbol EQMXCH in QUESER must be defined to be 100 characters. This
allows room for the complete path to a file in the lowest level
SFD, with all of the SFD names being 6 characters. In a built
copy of the monitor, this parameter may be changed by changing
the contents of %ENQML to be 100 (decimal).
.HL3 6.03A
TECO version 200 will not run under TOPS-10 6.03A unless the
following patches are applied to UUOCON.  These patches will enable
the processing of the new FILOP. functions at are part of the 7.00
and 7.01 release of TOPS-10.  These patches are not supported by
Stevens Institute of Technology or Digitial Equipment Corporation.
These patches were written at Stevens Institute of Technology.
.b.literal
File 1)	DSKA:UUOCON.MAC[10,7]      	created: 1055 31-Oct-1978
File 2)	DSKA:UUOCON.MAC[10,52,603A]	created: 1233 13-Feb-1980

1)98	FOPMAX==.-FOPTAB-1 	;MAXIMUM FUNCTION
****
2)98	EXP	FOPILU					;(16) Illegal
2)	EXP	FOPIN					;(17) Input
2)	EXP	FOPOUT					;(20) Output
2)	EXP	FOPSST					;(21) SETSTS
2)	EXP	FOPGST					;(22) GETSTS
2)	EXP	FOPREL					;(23) RELEASE
2)	EXP	FOPWAT					;(24) WAIT for I/O to stop
2)	EXP	FOPSEK					;(25) SEEK
2)	FOPMAX==.-FOPTAB-1 	;MAXIMUM FUNCTION
**************
1)99		HLRZ	T2,T1		;GET ARGUMENT COUNT
1)		HRR	M,T1		;POINT TO FIRST ARGUMENT
****
2)99		HLRE	T2,T1		;GET ARGUMENT COUNT
2)		JUMPLE	T2,FCLOSI	; If zero or less than give illegal mode
2)		HRR	M,T1		;POINT TO FIRST ARGUMENT
**************
1)99		HLRZ	P1,T1		;REMEMBER CHANNEL #
****
2)99		TLZE	T1,(1B1)	; Is this assign a channel ?
2)		 JRST	[MOVE	T3,USRHCU##	; Yes - Get the highest used to date
2)			ADDI	T3,1		; Bump it one
2)			CAILE	T3,17		; Still less than 17 ?
2)			 JRST	FOPILU		; No - Give up
2)			HRL	T1,T3		; Get the channel into the correct place
2)			PUSHJ	P,PUTWDU##	; Store it back
2)			JRST	.+1]		; Keep on trucking
2)		HLRZ	P1,T1		;REMEMBER CHANNEL #
**************
1)99		JRST	@FOPTAB(T1)	;DISPATCH BY FUNCTION
****
2)99		HRRZ	T2,FOPTAB(T1)	; Get the address
2)		CAIN	T2,FOPEN	; Is this the OPEN address ?
2)		 JRST	@FOPTAB(T1)	; Yes - Just dispatch
2)		CAMG	P1,USRHCU##	; Set up F and S
2)		 SKIPN	F,USRJDA(P1)	; . . .
2)		  JRST	FOPILU		; Give error return
2)		MOVE	S,DEVIOS(F)	; Get the status
2)		JRST	@FOPTAB(T1)	;DISPATCH BY FUNCTION
**************
1)104		MOVE	T1,FOPTMP	;PRESET AC
****
2)104		MOVE	T1,DEVMOD(F)	; Get the mod word
2)		TLNN	T1,DVDSK	; Is this a disk?
2)		 JRST	FOPEN9		; No, don't bother with the path stuff
2)		MOVE	T1,FOPTMP	;PRESET AC
**************
1)108	;FILOP. EXIT ROUTINES
****
2)108	FOPWAT:	MOVEI	W,WAIT		; WAIT
2)		JRST	FOPOU1		; Continue
2)	FOPIN:	SKIPA	W,[TIN]		; get the input routine
2)	FOPOUT:	MOVEI	W,TOUT		; Get the output routine
2)		HRRZ	T1,FOPFLG	; Get the number of arguments
2)		CAIG	T1,1		; More than one ?
2)		 TRZA	T1,-1		; No, no close bits
2)		PUSHJ	P,GETWD1##	; Get the word into T1
2)		HRR	M,T1		; Put the information into M
2)	FOPOU1:	PUSHJ	P,(W)		; Call the routine
2)		  AOS	(P)		; Give a good return
2)		HRRZ	T1,S		; Get the device status
2)		PJRST	FOPXI1		; Store the information and return
2)	FOPSST:	HRRZ	T1,FOPFLG	; Get the number of arguments
2)		CAIGE	T1,2		; Need at least two arguments
2)		  JRST	FOPILU		; No - Illegal
2)		PUSHJ	P,GETWD1##	; Get the argument
2)		HRR	M,T1		; Put the address into M
2)		AOS	(P)		; Give a good return
2)		JRST	SETIOS		; Go do it
2)	FOPGST:	AOS	(P)		; Give a good return
2)		LDB	T1,[POINT 4,FOPAP,12] ; Get the AC
2)		HRR	M,P1		; Get the channel
2)		PJRST	USTATS		; Get the status
2)	FOPREL:	AOS	(P)		; Never fails
2)		JRST	RELEA1		; Continue
2)	FOPSEK:	JRST	FOPILU
2)109	;FILOP. EXIT ROUTINES
**************
1)144		AOS	JOBPD1##(R)
1)	IFE FTPI,<
****
2)145		AOS	(P)		; Give a skip return
2)	IFE FTPI,<
**************
.end literal
.hl2 MACRO
	The following patches are required to MACRO for TECO %200 to
assemble correctly.  These are edits 1157 and 1164.
 Fix the ^! operator and the generation of polish for the B operator.
.b.literal
File 1)	DSKA:MACRO.MAC[10,52]	created: 1128 03-Mar-1980
File 2)	DSKB:MACRO.MAC[10,6] 	created: 1717 19-Jul-1979

1)	;1157	28746	Fix "?MCREPP expression parsing problem" involving
1)	;		^! (The exclusive or operator) while expanding macros.
1)4	;1164		Fix bad polish generated by X=<<FOO##+2>B8+17>
1)	;1203	PY	1-Oct-80	SPR 10-30018
1)	;	Remove edit 653, as it is possible to generate UNV files
1)	;	with synonyms that do not have VARF set.
1)	;*****END OF REVISION HISTORY*****
****
2)4	;*****END OF REVISION HISTORY*****
**************
1)38		JUMPE MRP,EVUPA1	;[1157] if in a macro
1)		PUSH P,CS		;[1157] save CS on the stack
1)		CALL MREAD		;BETTER DO THIS
1)		POP P,CS		;[1157] Restore CS
1)	EVUPA1:	SUBI C,40		;[1157] YES, CHANGE TO SIXBIT
1)		JRST EVNUM		;AND EVALUATE
****
2)38		SKIPE MRP		;IF IN A MACRO
2)		CALL MREAD		;BETTER DO THIS
2)		SUBI C,40		;YES, CHANGE TO SIXBIT
2)		JRST EVNUM		;AND EVALUATE
**************
1)44	POLPO1:	SKIPE BSHIFT		;[1164] Doing a Bshift?
1)		 RET			;[1164] Yes, just eturn
1)		SKIPE INANGL		;STILL IN EVALUATION?
1)		JRST [	CAMN RC,XWDANG ;[773] WE HAVE LEFT POL, SUCH THAT LEFT POL=RIGHT POL?
****
2)44	POLPO1:	SKIPE INANGL		;STILL IN EVALUATION?
2)		JRST [	CAMN RC,XWDANG ;[773] WE HAVE LEFT POL, SUCH THAT LEFT POL=RIGHT POL?
**************
1)44		SKIPE INIOWD		;[730] DOING IOWD?
****
2)44		SKIPN BSHIFT		;[1037] JUST RETURN IF DOING B-SHIFT
2)		SKIPE INIOWD		;[730] DOING IOWD?
**************
1)229	REPEAT 0,<			;[1203]
1)		SKIPE UNISCH		;[1203] [653] FOUND IN UNV?
1)		JRST [	TLC ARG,SYNF!PNTF ;[1203] [653] YES, CHECK FOR SYN FIXUP
1)			TLCE ARG,SYNF!PNTF ;[1203] [653]
1)			JRST .+1	;[1203] [653]
1)			TLNN ARG,VARF	;[1203] [653] YES, OLD STYLE UNV FILE?
1)			JRST .+1	;[1203] [653]
1)			MOVE AC0,UNITBL(V) ;[1203] [653]
1)			JRST VERSKW]	;[1203] [653] YES, REASSEMBL UNV
1)		>			;[1203]
1)		LDB RC,RCPNTR		;POINT 1,ARG,17
****
2)229		SKIPE UNISCH		; [653] FOUND IN UNV?
2)		JRST [	TLC ARG,SYNF!PNTF ; [653] YES, CHECK FOR SYN FIXUP
2)			TLCE ARG,SYNF!PNTF ; [653]
2)			JRST .+1	; [653]
2)			TLNN ARG,VARF	; [653] YES, OLD STYLE UNV FILE?
2)			JRST .+1	; [653]
2)			MOVE AC0,UNITBL(V) ; [653]
2)			JRST VERSKW]	; [653] YES, REASSEMBL UNV
2)		LDB RC,RCPNTR		;POINT 1,ARG,17
**************
.end literal
.ei user