File: TECO.LS of Disk: V50/Source/Source-Listing-MAC-2
(Source file text) 

PAGE	LINE	SUBTITLE

 20	 743	.	Command Execution Loop
 22	 813	.	Q-register pack and unpack
 23	 879	Cmd ^C
 23	 892	Cmd ^
 24	 899	.	Push down list routines
 26	 967	Cmd J
 26	 973	Cmd R
 26	 979	Cmd C
 27	 991	Cmd L
 28	1023	Cmd D
 29	1075	Cmd K
 31	1122	.	Scope subroutines
 33	1174	Imm ^G<space>
 33	1175	Imm ^G*
 34	1230	.	Sort and branch
 36	1270	Cmd P
 37	1321	Cmd T
 38	1352	Cmd X
 39	1394	Cmd ;
 40	1401	Cmd ^A
 41	1415	Cmd A
 42	1438	Cmd Y
 44	1548	.	Teletype routines
 46	1607	.	Q-register manipulation
 48	1695	.	Q-register subroutines
 51	1783	Cmd ^T
 52	1798	.	Overlay handler
 54	1844	Cmd E
 55	1880	Cmd I
 55	1889	Cmd <TAB>
 55	1891	Cmd ^I
 56	1933	Cmd G
 57	1990	Imm *
 59	2005	Cmd Q
 60	2037	Cmd ,
 61	2054	.	Number routines
 62	2092	Cmd H
 62	2097	Cmd Z
 62	2102	Cmd ^H
 62	2106	Cmd B
 63	2113	Cmd M
 66	2153	
 72	2308	
 72	2313	Cmd W
 74	2369	Cmd U
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 1
                                                 FILE # 1

   1			/50 OS/8 TECO VERSION 7 V50
   2			/
   3			/
   4			/
   5			/
   6			/
   7			/
   8			/
   9			/
  10			/
  11			/
  12			/
  13			/
  14			/
  15			/
  16			/
  17			/
  18			/
  19			/
  20			/
  21			/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
  22			/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
  23			/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
  24			/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
  25			/
  26			/
  27			/
  28			/
  29			/
  30			/
  31			/
  32			/
  33			/
  34			/
  35			/
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 2
                                                 FILE # 1

  36			
  37			/BROUGHT TO YOU BY: RUSS HAMM, O.M.S.I., AND RICHARD LARY (IN THAT ORDER)
  38			/WITH ASSISTANCE FROM MARIO DENOBILI OF THE P?S
  39			/PATCHES INCORPORATED BY S.R. ON 5-AUGUST-75 FOR OS/8 V3C:
  40			
  41			/1.	UPDATED VERSION # TO V4
  42			/2.	INCORPORATED PATCHES #S 1 & 2 (V302 AND V303)
  43			/	PREVENTS \ FROM GOING OUTSIDE OF BUFFER
  44			/	RESETS CFLAG TO PREVENT ARGUMENT ERROR EVERY 4096 TIMES IN LOOP
  45			
  46			/	CHANGES FOR V5: -STANLEY RABINOWITZ-
  47			
  48			/3.	ADDED OVERLAYS
  49			/4.	EXPANDED ERROR MESSAGES
  50			/5.	DOCUMENTED CORE LAYOUT
  51			/6.	ADDED "T, "S, "F, "U, AND "R
  52			/7.	FIXED EG BUG
  53			/8.	MADE DEFAULT ITERATION COUNT TRULY INFINITE
  54			/9.	ADDED N^T
  55			/10.	ADDED :=
  56			/11.	ADDED SOME SAFETY ERROR MESSAGES
  57			/	(I)	ERROR IF Y HAS A NUMERIC ARGUMENT
  58			/	(II)	ERROR IF TWO ARGUMENTS ARE SPECIFIED TO D
  59			/12.	REMOVE ^R (OBSOLETE COMMAND)
  60			/13.	REMOVE "A AND "B (AFTER AND BEFORE)
  61			/14.	ADDED 13-BIT ARITHMETIC
  62			/15.	MADE = AND \ GIVE SIGNED RESULTS (DECIMAL ONLY)
  63			/16.	ALLOW 13-BIT NUMERIC Q-REGISTERS.
  64			/	THIS IS ACCOMPLISHED BY RESERVING THE HIGH ORDER BIT
  65			/	OF THE LENGTH WORD.  STRING PORTION OF Q-REGISTER
  66			/	NOW RESTRICTED TO 2047 CHARACTERS.  IT GETS CHECKED BY
  67			/	^U AND X.  BELL RINGS WITHIN 12 CHARACTERS OF FILLING
  68			/	UP COMMAND STRING Q-REGISTER.
  69			/17.	STORED LINK AS LOW ORDER BIT IN NLINK IN CASE WE EVER
  70			/	WANT TO GO TO 24-BIT ARITHMETIC.
  71			/18.	ERROR ON A,B,C
  72			/19.	P DOESN'T CREATE FORM FEEDS
  73			/20.	ALLOW @ MODIFIER WITH ER, EW, EB.
  74			/21.	EK
  75			/22.	^S FREEZE
  76			/23.	EGTEXT$
  77			/24.	GOT RID OF F_
  78			/25.	F IS ILLEGAL IF NOT FOLLOWED BY S OR N
  79			/26.	W IS NOW AN ILLEGAL COMMAND (EXCEPT ON -12)
  80			/27.	ADDED :G
  81			/28.	Y AND _ GIVE ERRORS IF DATA IS GOING TO BE LOST
  82			/	(IF OUTPUT FILE IS OPEN AND BUFFER IS NOT EMPTY)
  83			/29.	CASE FLAGGING IMPLEMENTED
  84			/30.	"< AND "> ARE SYNONYMOUS WITH "L AND "G
  85			/31.	^G<SPACE> AND ^G*
  86			/32.	SCOPE RUBOUTS
  87			/33.	== NOW PRINTS NUMBER IN OCTAL
  88			/34.	EUFLAG AND ETFLAG IMPLEMENTED
  89			/35.	CASE FLAGGING WORKS
  90			/36.	IMAGE MODE (ET BIT 11) APPLIES TO T, ^A, AND N^T
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 2-1
                                                 FILE # 1

  91			/	IT DOES NOT APPLY TO :G
  92			/37.	ERROR IF TRY TO DO AN EB TO A .BK FILE (IT DOES AN ER)
  93			/38.	VT AND FF ARE NOW LINE TERMINATORS
  94			/39.	BELL ECHOES AS ^G AS WELL AS RINGING BELL
  95			/40.	^K IS AN ERROR
  96			/41.	REMOVED ^Z COMMAND
  97			/42.	CHANGED ^V TO EO
  98			/43.	CHANGED ^W TO W
  99			/44.	MEMORY RESIDENT OVERLAYS IF MORE THAN 12K
 100			/45.	LONG FORM ERROR MESSAGES ON 1EH
 101			/46.	ET FLAG 8'S BIT AFFECTS ECHOING OF ^T
 102			/47.	NEGATIVE OR 0 ITERATION SKIPS
 103			/48.	CTRL/N
 104			/49.	CTRL/C TRAP
 105			
 106			/KNOWN BUGS
 107			/1.	LARGE T OR X AND ONLY 1 BLOCK LEFT IN OUT DEV
 108			/2.	^S DOESN'T KEEP SCREEN ON (ON PDP-12)
 109			/3.	FIX BATCH INTERRACTION
 110			/4.	MAKE VT AND FF SIMULATION INDEPENDENT OF TAB
 111			/5.	^T COMMAND (WITH ECHO ON) READS DOLLAR SIGN FOR TYPED ALTMODE
 112			
 113		0050  	VERSN=	40.	/ VERSION NUMBER - CHANGE WITH EVERY EDIT 
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 3
                                                 FILE # 1

 114			
 115			/CHANGES FOR V6: (STAN RABINOWITZ)
 116			
 117			/50.	ADDED SYMBIONT SUPPORT
 118			/51.	CONVERTED TO MACREL
 119			/52.	ADDED VT52 SUPPORT (JIM ROTH)
 120			/53.	AY PATCH (501)
 121			/54.	CONDITIONAL PATCH (502)
 122			/55.	BELL ON 12 CHARACTERS (503)
 123			/56.	^U, *, ^G<SPACE>, ETC. (504)
 124			/57.	N*0 PATCH (505)
 125			/58.	8K PATCH (506)
 126			/59.	SKIPPING W (507)
 127			/60.	NO ERROR ON ^S AFTER ^S
 128			/61.	REDUCED EXTRA BLOCK WRITE OF OVERLAYS
 129			/62.	REMOVED ^P CMD AND EXECUTION TIME ^P COMMAND
 130			/63.	IMPLEMENTED IMMEDIATE MODE CMDS LF AND BS
 131			/64.	:ER AND :EB
 132			/65.	ERFILE/S$ FOR SUPERTECO
 133			/66.	PUT F_ BACK IN
 134			/67.	^L COMMAND
 135			/68.	ALLOW @^A
 136			/69.	2'S BIT IN ED FLAG
 137			/70.	ALLOW CHAIN ARG TO BE LARGE
 138			/71.	EXTRA 7 CHARS IN SEARCH BUFFER IF NOT ON PDP-12 OR VT52
 139			/72.	REMOVED MQ DISPLAY
 140			/73.	ABORT ON ERROR BIT
 141			/74.	PATCH FOR UNSPECIFIED ITERATION AFTER INSERT (508)
 142			/75.	VT05 SUPPORT
 143			/76.	^R (LITERALLY) IN SEARCH STRINGS
 144			/77.	FORTIFIED ?POP ERROR MESSAGE
 145			/78.	"= SYNONOMOUS WITH "E
 146			/79.	FIXED NUMBER FLAG AFTER A 0<>
 147			/80.	FIXED H$T BUG
 148			/81.	ADDED ^C TRAP BIT (IF VT52 SUPPORT IN)
 149			/82.	ADDED TECO.INI CODE
 150			/83.	<TAB> PRINTS RATHER THAN <HT>
 151			/84.	SET SCOPE BIT IF SCOPE
 152			/85.	ADDED ED BIT 1, ALLOW ^ IN SEARCH STRINGS
 153			/86.	SOME ERROR MESSAGE CODES CHANGED
 154			
 155			/VERSION 602 CHANGES:
 156			
 157			/87.	3EH CODE
 158			/88.	4EH BIT IN
 159			/89.	EX WITH TEXT AND NO OUT FILE GIVES ?NFO
 160			/90.	FIXED BUG IN 1ED
 161			
 162			/VERSION 604 CHANGES:
 163			
 164			/91.	TECO.TEC
 165			/92.	* CLEARS ?
 166			/93.	AID * IDENTICAL TO AID ^S
 167			/94.	^_
 168			/95.	V
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 3-1
                                                 FILE # 1

 169			/96.	"D AND "A
 170			/97.	EY
 171			/98.	?NAS BECAME ?ISA
 172			/99.	1024 BIT IN ET SET ON PDP-12
 173			/100.	PRINT SEARCH STRING ON ?SRH
 174			/101.	?UEC ETC.
 175			/102.	/
 176			/103.	READ WITH NO WAIT
 177			/104.	LF AND BS
 178			/105.	^B
 179			/106.	?NPA --> ?IPA
 180			
 181			/VERSION 605 CHANGES:
 182			
 183			/107.	FIXED 16K BUG
 184			/108.	<NOT>,<ANY>,<SEP>
 185			/109.	N<A> RETURNS -1 IF POINTER REFERENCE IS OFF PAGE
 186			/110.	F_ BACK IN
 187			/111.	-1EJ
 188			/112.	M,N<FLAG>
 189			
 190			/VERSION 606 CHANGES:
 191			
 192			/113.	ADDED IF-THEN-ELSE
 193			
 194			/VERSION 7 CHANGES:
 195			
 196			/114.	PUT AID ^S BACK IN (SAME AS *)
 197			
 198			/VERSION 50 CHANGES:*WM*
 199			
 200			/115.	^S OUT AGAIN (VT100)
 201			/116.	ALTER ALTS OUT (TELETYPES ARE OUT?)
 202			/117.	NEW COMMAND ^]: 'IS THERE KEYBOARD INPUT?'
 203			/118.	M,ND IS SAME AS M,NK
 204			/119.	TIME OF DAY (MULTI8) ^H COMMAND IMPLEMENTED
 205			/120.	^S,^Q ARE IGNORED IN COMMAND MODE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 4
                                                 FILE # 1

 206			
 207				.ENABLE 7BIT
 208			
 209				.GLOBAL CHR.W,C.W,SCHLST,CIL2,CFSI
 210				.GLOBAL	CHKCTC,TPUTX,STABLE
 211				.GLOBAL TSFWT,OUTDNE,CHKCTC,TYI
 212				.GLOBAL CTLWR,TSTA,SCHSRT
 213				.GLOBAL VT05B,VBAR
 214				.GLOBAL CAHT,CHRL1,NAME,NUMLNS,R
 215				.GLOBAL ASR33,BLSP1,BLSP2,BLSP3,BLSP4,BUFIN,CACR,CHTECO
 216				.GLOBAL COLCT,EUFLAG,EU1,EU2,GETQX,IC,INCTLW,INHNDL
 217				.GLOBAL INPCNT,INRSIZ,INXR,I2,J12K1,J12K2,L12K1,L12K2,KSFWT,L16K
 218				.GLOBAL MQMAX,NWRUSR,OUTSIZ,POUTHT,QLIMIT
 219				.GLOBAL QPUTS,Q12MAX,RUBY,SCAPE,SCOPY
 220				.GLOBAL SCPBIT,TECOS,TECO1,TEMPT,TYI1,T0A
 221				.GLOBAL CHKCTR,TYIRET
 222				.GLOBAL VT52B
 223				.GLOBAL ETFLAG,MEMSIZ
 224				.GLOBAL IOVRLC,QOVRLC,XOVRLC,FOVRLC
 225				.GLOBAL QPNTR,ERRXX,EHFLAG,ETFLAG
 226				.GLOBAL MEMLOC,CTL.C,LASTC,OVREAD,ERRRET
 227				.GLOBAL ERROR,T0,QLENGTH
 228				.GLOBAL ECDISM,ERR,GETUSR,NNEW13,OCMDLN
 229				.GLOBAL TCTLS,IREST
 230				.GLOBAL ZROSPN,EDFLAG,ET8,POKE,TPUT,CHR.T
 231				.GLOBAL NCOM14,NORMAL,OCNT
 232				.GLOBAL SORTA1
 233				.GLOBAL EH4,KTYPE,TQMK
 234				.GLOBAL OCRCNT,OUNAM,OUTR,OMAXLN,OSETP,IBLK,DECPUT
 235				.GLOBAL STECO1,STECO2
 236				.GLOBAL QBASE,ZRON,CHREY
 237				.GLOBAL ET1,SCHU,UPOC,ERR01,ERR07,SCHCTE
 238				.GLOBAL YSKP,EOVRLC
 239				.GLOBAL CHR.A,CHR.B,CHR.C,CHR.D,CHR.E,CHR.G,CHR.H,CHR.I,CHR.J,CHR.K
 240				.GLOBAL CHR.L,CHR.M,CHR.P,CHR.Q,CHR.R,CHR.T,CHR.U,CHR.X,CHR.Y,CHR.Z
 241				.GLOBAL SERR,POPK,CPCS,CCMA
 242				.GLOBAL CATS,CEXP,INRCNT
 243				.GLOBAL ICRCNT,QPTR,UPPERC,GETN,CHR.UA
 244				.GLOBAL CTL.A,CTL.H,CTL.I,CTL.T
 245			
 246				.EXTERNAL TSAV,NRET,ESCAPE,NCOM,CMIN,TSTD
 247				.EXTERNAL DSPLAY,TCINIT,ERR30
 248				.EXTERNAL JTECO,ERRYY,XH,QMK
 249				.EXTERNAL DRAD,SETSKP,VBARE
 250				.EXTERNAL CDSP,PDLBEG,PDLEND,CSEM,ELIST
 251			
 252		6200  	IN=	6200		/INPUT BUFFER AT 06200
 253		5200  	OUT=	5200		/OUTPUT BUFFER AT 05200
 254		7640  	ZMAX=	7640		/MAX 4000[10] CHARACTERS IN TEXT BUFFER
 255		3720  	QMAX=	3720		/MAX 2000[10] Q-REGISTER CHARS IN 8K
 256		5600  	Q12MAX=	5600		/MAX 2944[10] Q-REGISTER CHARS IN 12K
 257			
 258		7344  	MTWO=	CLA CLL CMA RAL
 259		7346  	MTHREE=	CLA CLL CMA RTL
 260		7350  	AC3777=	CLL STA RAR
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 4-1
                                                 FILE # 1

 261		7726  	SCPBIT=	7726
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 5
                                                 FILE # 1

 262			
 263				.MACRO	.ERROR	ERNUM
 264				.GLOBAL ERR'ERNUM
 265			ERR'ERNUM:	ERR
 266				.ENDM
 267			
 268				.MACRO	.SORT	ARG1,ARG2
 269				SORT;	ARG1;	ARG2-ARG1
 270				.ENDM
 271			
 272				.MACRO	.OVRLAY	LAY,ADDR
 273				OVRLAY;	LAY'OVRLY;	ADDR
 274				.ENDM
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 6
                                                 FILE # 1

 275			
 276			/THINGS WE WOULD LIKE TO ADD:
 277			
 278			/FR
 279			/-S
 280			/::S
 281			/^EQ
 282			/M,NS
 283			/[Q
 284			/]Q
 285			/NON-EXACT SEARCH MODE
 286			/*N
 287			/CHECK FOR $ ON NI$
 288			/NV=(1-N)TNT
 289			/:X
 290			/"V
 291			/"W
 292			/:^U
 293			/^X
 294			/ES
 295			/EV
 296			/M,ND			*WM OK
 297			/E?HELP$  COMMAND
 298			/:C,:J, ETC.
 299			/^Q REMOVED FROM INPUT RING BUFFER (OR IMMED ACTION ^Q CMD)	*WM OK
 300			/^V AND ^W MATCH CONTROL
 301			/BS SHOULD NOT STICK AT TOP
 302			/MEMSIZ SHOULD BE ADJUSTED
 303			/SEARCH STRING TOO LONG NEEDS A 0
 304			/TEST FOR ILLEG CHAR IN FILE  SELECT
 305			/?MEE, ETC. ERROR MESSAGES
 306			/| SHOULD GO INTO ROOT
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 7
                                                 FILE # 1

 307			
 308			/*****************************************
 309			/	TECO ERROR MESSAGES:
 310			/*****************************************
 311			
 312			/	TECO ERROR MESSAGES CONSIST OF A QUESTION MARK AND THREE LETTERS
 313			/	TYPING "?" IMMEDIATELY AFTER AN ERROR MESSAGE PRINTOUT PRINTS
 314			/	THE CURRENT COMMAND LINE UP TO THE ERROR CHARACTER.
 315			
 316			/1	?ILL	ILLEGAL COMMAND
 317			/2	?UTC	INCOMPLETE COMMAND (PDL NOT EMPTY AT END OF COMMAND STRING)
 318			/3	?IQN	NON-ALPHANUMERIC Q-REGISTER NAME
 319			/4	?PDO	PUSHDOWN OVERFLOW (MACROS & ITERATIONS NESTED TOO DEEPLY)
 320			/5	?MEM	TEXT BUFFER OVERFLOW
 321			/6	?STL	SEARCH STRING TOO LARGE ( >31 CHARS)
 322			/7	?ARG	NUMBER MISSING BEFORE COMMA
 323			/		OR TWO ARGUMENTS SPECIFIED TO D
 324			/		OR 3 NUMERIC ARGUMENTS
 325			/8	?IFN	ILLEGAL FILE NAME IN "ER","EW" OR "EB" COMMAND
 326			/9	?SNI	SEMICOLON ON COMMAND LEVEL
 327			/10	?BNI	ITERATION CLOSE (>) WITHOUT MATCHING OPEN (<)
 328			/11	?POP	ATTEMPT TO MOVE POINTER OUTSIDE OF TEXT BUFFER
 329			/12	?QMO	Q-REGISTER STORAGE OVERFLOW
 330			/13	?UTM	INCOMPLETE COMMAND (PDL NOT EMPTY AT END OF MACRO)
 331			/14	?OUT	OUTPUT FILE TOO BIG OR OUTPUT PARITY ERROR
 332			/15	?INP	PARITY ERROR ON INPUT FILE
 333			/16	?FER	FILE ERROR: CAN MEAN EITHER
 334			/		A)	INPUT FILE NOT FOUND ON "ER" COMMAND
 335			/		B)	CANNOT ENTER OUTPUT FILE ON "EW" OR "EB" COMMAND
 336			/		C)	DEVICE SPECIFIED FOR FILE DOES NOT EXIST
 337			/		D)	"EB" COMMAND GIVEN ON NON-FILE-STRUCTURED DEVICE
 338			/17	?FUL	OUTPUT COMMAND WOULD HAVE OVERFLOWED OUTPUT FILE
 339			/		[PANIC MODE]
 340			/18	?NYA	NUMERIC ARGUMENT SPECIFIED WITH Y COMMAND
 341			/19	?IEC	E FOLLOWED BY AN ILLEGAL CHARACTER
 342			/20	?IQC	" FOLLOWED BY AN ILLEGAL CHARACTER
 343			/21	?NAE	NO NUMERIC ARGUMENT TO THE LEFT OF AN =
 344			/22	?NAU	NO NUMERIC ARGUMENT TO THE LEFT OF A U
 345			/23	?NAQ	NO NUMERIC ARGUMENT TO THE LEFT OF A "
 346			/24	?SRH	FAILING SEARCH AT COMMAND LEVEL
 347			/25	?NPA	NEGATIVE OR ZERO ARGUMENT TO P
 348			/26	?NCA	NEGATIVE ARGUMENT TO COMMA
 349			/27	?NYI	CASE SUPPORT NOT IMPL (USE W FOR WATCH)
 350			/28	?UIS	UNDEFINED I/O SWITCH
 351			/29	?ISA	NEGATIVE OR ZERO ARGUMENT WITH A SEARCH
 352			/30	?WLO	WRITE LOCKED SYSTEM DEVICE
 353			/31	?IFC	F FOLLOWED BY AN ILLEGAL CHARACTER
 354			/32	?YCA	Y (OR _) COMMAND ABORTED BECAUSE DATA WOULD BE LOST
 355			/33	?CCL	CCL NOT FOUND OR EG ARGUMENT TOO LONG
 356			/34	?XAB	EXECUTION ABORTED BY ^C
 357			/35	?NYI	CASE SUPPORT NOT IMPL (USE EO FOR VERSION)
 358			/36	?UEC	UNIMPLEMENTED E COMMAND
 359			/37	?DTB	DELETE TOO BIG
 360			/38	?POP	REFERENCE TO POINTER OFF PAGE
 361			/39	?ICE	ILLEGAL CONTROL-E
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 7-1
                                                 FILE # 1

 362			/40	?NAB	NO ARGUMENT BEFORE ^_
 363			/41	?NYI	PUSH AND POP NOT YET IMPLEMENTED
 364			/42	?NFO	ATTEMPT TO OUTPUT WITHOUT OPENING AN OUTPUT FILE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 8
                                                 FILE # 1

 365			
 366			/	CORE LAYOUT AND OVERLAY STRUCTURE
 367			
 368			/	BUFFER STRUCTURE:
 369			
 370			/BUFFER		8K VERSION	12K VERSION
 371			
 372			/INPUT  BUFFER	06200-07200	25600-27600
 373			/OUTPUT BUFFER	05200-06200	05200-07200
 374			/Q-REG STORAGE	OVER TEXT BFR	20000-25600
 375			
 376			/	HANDLER LOCATIONS:
 377			
 378			/HANDLER	PDP-8 VERSION	PDP-12 VERSION
 379			
 380			/INPUT  HANDLER	7200-7600	7200-7400
 381			/OUTPUT HANDLER	4000-4400	7400-7600
 382			/SIZE OF HNDLR	2-PAGES		1-PAGE
 383			/DISPLAY CODE	NONE		4000-4400
 384			
 385			/	OVERLAY STRUCTURE
 386			
 387			/ALL OVERLAYS ARE TWO PAGES LONG AND RESIDE IN CORE
 388			/AT LOCATIONS 3200-3600 WHEN RUNNING.  THE I-OVERLAY
 389			/INITIALLY RESIDES IN THESE LOCATIONS.
 390			
 391			/OVERLAY	BLOCK	INITIAL LOCATION	CONTENTS
 392			
 393			/  I-OVERLAY	40	3200-3600	ER,EW,EB
 394			/  Q-OVERLAY	41	5600-6200	", O, SKPSET
 395			/  E-OVERLAY	42	6200-6600	ERROR MESSAGE PROCESSOR
 396			/  X-OVERLAY	43	6600-7200	EX,EC,EG,EK,EF (EA,EI,EN,EP)
 397			/  F-OVERLAY	44	7200-7600	ED,EH,EO,ES,ET,EU (EV)
 398			
 399		0040  		IOVRLC=40
 400		0041  		QOVRLC=41
 401		0042  		EOVRLC=42
 402		0043  		XOVRLC=43
 403		0044  		FOVRLC=44
 404			
 405		3200  		IOVRLY=3200
 406		3201  		QOVRLY=3201
 407		3202  		EOVRLY=3202
 408		3203  		XOVRLY=3203
 409		3204  		FOVRLY=3204
 410			
 411			/EACH OVERLAY IS ASSIGNED A LOCATION AT THE BEGINNING OF PAGE 3200.
 412			/IF THIS LOCATION IS 0 (AS IT ALWAYS IS), THEN THAT OVERLAY IS
 413			/IN CORE.  IF IT IS NOT 0, THEN THIS LOCATION CONTAINS THE
 414			/BLOCK NUMBER TO READ IN THAT OVERLAY.
 415			/THUS EACH OVERLAY HAS POINTERS TO ALL THE OTHER OVERLAYS.
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 9
                                                 FILE # 1

 416			
 417		2000  		MEMLOC=2000
 418			
 419			/IN 16K MACHINES, FIELD 3 IS USED TO HOLD OVERLAYS
 420			/IN 20K MACHINES, FIELD 4 SERVES THIS PURPOSE INSTEAD
 421			
 422			/NAME	BLOCK	MEMORY
 423			
 424			/I	40	2000
 425			/Q	41	2400
 426			/E	42	3000
 427			/X	43	3400
 428			/F	44	4000
 429			
 430			
 431			/INITIAL MEMORY LAYOUT
 432			
 433			/0000-3177	TECO
 434			/3200-3577	OVERLAY AREA (INITIALLY I-OVERLAY)
 435			/3600-3777	TECO
 436			/4000-4377	PDP-12 DISPLAY ROUTINE
 437			/4400-5177	TECO
 438			/5200-5577	INITIALIZATION CODE
 439			/5600-6177	Q-OVERLAY CODE
 440			/6200-6577	E-OVERLAY CODE
 441			/6600-7177	X-OVERLAY CODE
 442			/7200-7577	F-OVERLAY CODE
 443			
 444			/FIELD 1:
 445			
 446			/0000-3177	VT52 SUPPORT CODE INITIALLY RESIDES HERE
 447			/3200-3377	INITIAL COPY OF EXTENDED MATCH CONTROL CODE
 448			/3400-3777	MORE INITIALIZATION CODE
 449			/4000-4377	RESERVED FOR TECO.INI STUFF
 450			/4400-7377	EXTENDED ERROR MESSAGES
 451			/		MOVES TO FIELD 3 OR 4
 452			/7400-7577	FREE. AVAILABLE TO USER FOR EXTENDED CHAIN ARGUMENT
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 10
                                                 FILE # 1

 453			
 454			/	EXECUTION-TIME MEMORY LAYOUT
 455			
 456			/	FIELD 0					NOTES
 457			
 458			/0000-3177	TECO
 459			/3200-3577	OVERLAY AREA
 460			/3600-3777	TECO
 461			/4000-4377	OUTPUT HANDLER		(VR12 CODE ON PDP-12)
 462			/4400-5137	TECO
 463			/5140-5177	PUSHDOWN STACK
 464			/5200-6177	OUTPUT BUFFER
 465			/6200-7177	INPUT BUFFER		(ADDITIONAL OUTPUT BUFFER IF .GT. 8K)
 466			/7200-7377	INPUT HANDLER		(EXTENDED MATCH CONTROL MAY BE HERE)
 467			/7400-7577	MORE INPUT HANDLER	(OUTPUT HANDLER ON PDP-12)
 468			
 469			/	FIELD 1
 470			
 471			/0000-7637	TEXT BUFFER	     (IN 8K, Q-REGISTERS MULTIPLEX THIS AREA)
 472			
 473			/	FIELD 2
 474			
 475			/0000-5577	Q-REGISTER STORAGE
 476			/5600-7577	INPUT BUFFER
 477			
 478			/	FIELD 3
 479			
 480			/0000-7577	VT SUPPORT
 481			
 482			/	FIELD 4	(FIELD 3 IF NO VT SUPPORT)
 483			
 484			/0000-1777	HELP BUFFER
 485			/2000-2377	RESIDENT I-OVERLAY
 486			/2400-2777	RESIDENT Q-OVERLAY
 487			/3000-3377	RESIDENT E-OVERLAY
 488			/3400-3777	RESIDENT X-OVERLAY
 489			/4000-4377	RESIDENT F-OVERLAY
 490			/4400-7377	EXTENDED ERROR MESSAGE CODE
 491			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 11
                                                 FILE # 1

 492			
 493			/**  TECO KLUDGES **		/7/27/73
 494			/ONE OF THE REASONS WHY TECO GETS SO MANY OPERATIONS
 495			/INTO SUCH A SMALL AMOUNT OF CORE IS THAT IT
 496			/IS FULL OF *K*L*U*D*G*E*S*.  THESE SHOULD BE KEPT IN MIND WHEN
 497			/MODIFYING THE PROGRAM.  SOME OF THEM ARE:
 498			
 499			/	THE "SORT" ROUTINE COMPARE LIST MUST END WITH A NEGATIVE NUMBER.
 500			/	USUALLY A FORTITUOUS JMS OR OPR INSTRUCTION IS USED
 501			
 502			/	THE "SORT" JUMP LIST ENTRIES ARE TREATED AS JUMP ADDRESSES
 503			/	IF THEY ARE POSITIVE AND SUBSTITUTE VALUES IF THEY ARE
 504			/	NEGATIVE - THEREFORE ALL LOCS JUMPED TO MUST BE BELOW 4000
 505			/	ANOTHER CONSEQUENCE IS THAT "QUOTST" CANNOT BE CALLED FROM
 506			/	ABOVE 4000
 507			
 508			/	THE MASTER DISPATCH TABLE HAS ENTRIES THAT ARE POSITIVE
 509			/	TO MEAN BRANCH TO THIS CODE, AND NEGATIVE TO MEAN THAT THE COMMAND
 510			/	IS HANDLED IN AN OVERLAY.  THUS, ALL CODE FOR COMMANDS MUST START
 511			/	AT A POSITIVE ADDRESS.
 512			
 513			/	THERE ARE OTHER LOCALIZED KLUDGES - THEY CAN GENERALLY
 514			/	BE IDENTIFIED BY THE APPEARANCE OF A DOUBLE-ASTERISK IN THE
 515			/	COMMENTS FIELD ALONG WITH A TERSE DESCRIPTIVE COMMENT
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 12
                                                 FILE # 1

 516			
 517		0000  		.JSW	0
 518		0050  		.VERSION VERSN
 519			
 520		0200  		.ASECT	TECO.0
 521			
 522		0000  		*0
 523	 00000	0000  		0		/RESERVED FOR USE BY
 524	 00001	6232  		CIF 30		/  OS/78 SYMBIONT SUPPORT
 525	 00002	5001  		JMP .-1
 526	 00003	0000  	NAME,	ZBLOCK	4	/NAME BUILD BUFFER - MUST BE AT LOCATION 3 (USED TO BE 0)
 527						/SEE 'NAMEC' ROUTINE
 528						/LOCS 4,5&6 ARE NO LONGER RESERVED SO WE CAN USE OS/8 ODT
 529		0006  		DM=NAME+3
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 13
                                                 FILE # 1

 530			
 531		0010  		*10	/CONSTANTS & NON-INDIRECT TEMPS STORED IN AUTO-XRS!
 532	 00010	0033  	QUOTE,	33	/QUOTE CHAR - SINGLE WORD SORT LIST
 533			SERR,	.ERROR 01	/END OF LIST
 534	 00012	0002  	INRSIZ,	2	/4 IF 12K MACHINE
 535	 00013	0003  	NUMLNS,	3	/NUMBER OF LINES (+ AND -) TO DISPLAY ON VR12 SCOPE
 536			
 537		0200  		.ASECT TEC.16
 538			
 539		0016  		*16
 540			
 541	 00016	0000  	INXR,	0	/XR USED TO UNPACK INPUT BUFFER
 542	 00017	0000  	XR,	0	/WORK XR
 543			
 544	 00020	0000  	NMT,	0	/USED  AS NUMBER TEMP AND SEARCH FAIL FLAG
 545	 00021	0000  	CFLG,	0	/COMMA FLAG
 546	 00022	0000  	CLNF,	0	/COLON FLAG
 547	 00023	0000  	TFLG,	0	/TRACE FLAG
 548	 00024	0000  	NFLG,	0	/NUMBER FLAG
 549	 00025	0000  	QFLG,	0	/QUOTED STRING FLAG
 550	 00026	0000  	M,	0	/NUMBER ARGS
 551	 00027	0000  	N,	0
 552	 00030	0000  	NLINK,	0	/LINK AFTER ARITH OPERATIONS
 553	 00031	0000  	CHAR,	0	/CHARACTER BUFFER
 554	 00032	0000  	ITRST,	0	/ITERATION FLAG
 555	 00033	0000  	ITRCNT,	0	/ITERATION COUNT
 556	 00034	0000  	MPDL,	0	/MACRO FLAG
 557	 00035	0000  	SCHAR,	0	/LAST CHAR SORTED
 558	 00036	0000  	FFFLAG,	0	/FORM FEED FLAG - 7777 IF FORM FEED SEEN ON THIS READ
 559	 00037	0000  	REND,	0	/INPUT END-OF-FILE FLAG
 560	 00040	0000  	SCANP,	0	/COMMAND LINE EXECUTION POINTER
 561	 00041	0000  	OSCANP,	0	/BACKUP FOR SCANP
 562	 00042	0000 *	PDLP,	PDLBEG	/PUSH-DOWN-LIST POINTER
 563	 00043	0000  	QCMND,	0	/COMM LINE OR MACRO POINTER
 564	 00044	0000  	P,	0	/CURRENT PNTR TO TEXT BUFFER
 565	 00045	0000  	ZZ,	0	/END OF TEXT BUFFER POINTER
 566	 00046	0000  	Q,	0	/EXTRA BUFFER POINTERS
 567				IFNZRO .-47 <_ERROR_>
 568	 00047	0000  	R,	0
 569	 00050	0000  	QP,	0	/Q REGISTER POINTER
 570	 00051	0000  	QZ,	0	/END OF Q-REG POINTER (MUST BE INITIALLY 0)
 571			Z7,
 572	 00052	0007  	CTLBEL,	7
 573	 00053	0015  	CACR,	15	/CR
 574			Z11,
 575	 00054	0011  	CAHT,	11	/HT
 576			Z33,
 577	 00055	0033  	CAAM,	33	/ALT MODE
 578			Z14,
 579	 00056	0014  	CAFF,	14	/FF: END OF PAGE
 580	 00057	0013  		13	/VT
 581			Z12,
 582	 00060	0012  	CALF,	12	/LF
 583			NERR,	.ERROR 07	/END OF LIST
 584	 00062	0000 *	RADIX,	DRAD	/RADIX TABLE POINTER - DRAD OR ORAD
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 14
                                                 FILE # 1

 585			
 586	 00063	0000  	MQ,	0
 587	 00064	0000  	DVT1,	0
 588	 00065	0000  	ODEV,	0	/OUTPUT DEVICE NUMBER
 589	 00066	0000  	OUTHND,	0
 590	 00067	0000  	INHND,	0
 591	 00070	0000  	EBFLG,	0	/EDIT BACKUP FLAG
 592	 00071	0000  	QNMBR,	0	/LAST Q-REG REFERENCED
 593	 00072	0000  	QBASE,	0	/BASE OF CURRENT COMMAND LINE
 594	 00073	0000  	QLENGT,	0	/LENGTH OF CURRENT COMMAND LINE
 595	 00074	0000  	QPTR,	0	/POINTER TO Q-REGISTER CONTROL BLOCK
 596	 00075	0000  	ICRCNT,	0	/INPUT DOUBLEWORD COUNTER
 597	 00076	0000  	OCRCNT,	0	/OUTPUT "
 598	 00077	0000  	OPTR2,	0	/OUTPUT BUFFER POINTER
 599	 00100	0000  	INRCNT,	0	/NUMBER OF INPUT RECORDS LEFT
 600	 00101	0000  	OCMDLN,	0	/LENGTH OF OLD COMMAND LINE
 601	 00102	0000  	CDT,	0
 602	 00103	4521  	KTYPE,	TYPE		/*ET SET TO PUTT IF NO CONVERSION
 603	 00104	0000  	TEMPT,	0		/TEMP.  GET RID OF WHEN FIND ROOM ON PAGE
 604	 00105	0000  	MEMSIZ,	0		/HIGHEST MEMORY FIELD IN BITS 9-11
 605	 00106	0000  	LASTC,	0		/LAST CHARACTER GOTTEN OUT OF COMMAND LINE
 606			/ZCHAR,	0
 607			
 608			/NFLG:	0'ED BY COMMANDS WHICH EAT ARGUMENTS OR DON'T RETURN
 609			/	VALUES; SUCH AS C,R,J,L,^A,X,$,',>,^U,G,O AND
 610			/	NON-COLON MODIFIED SEARCHES
 611			/	SET TO -1 TO INDICATE THAT WE'VE SEEN A NUMBER
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 15
                                                 FILE # 1

 612			
 613				/TECO PSEUDO-OPERATIONS
 614			
 615		4507  	PUSH=	JMS I	.;	PUSHXX
	 00107	0507  
 616		4510  	POP=	JMS I	.;	POPXX	/** MUST BE ONE MORE THAN "PUSH"
	 00110	0501  
 617		4511  	PUSHJ==	JMS I	.;	PUSHJY
	 00111	0520  
 618		5512  	POPJ==	JMP I	.;	POPJXX
	 00112	0470  
 619		4513  	PUSHL==	JMS I	.;	PUSHLX
	 00113	0527  
 620		4513  	POPL==	PUSHL			/** POPL CALLED WITH POSITIVE AC
 621			
 622		4514  	ERR=	JMS I	.;ERROR,ERRXX
	 00114	2600  
 623		4515  	SORT==	JMS I	.;	SORTB
	 00115	1530  
 624		5516  	RESORT==	JMP I	.;	SORTA2
	 00116	1556  
 625		4517  	SCAN==	JMS I	.;	SGET
	 00117	2423  
 626		4520  	LISTEN=	JMS I	.;	TYI
	 00120	2727  
 627		4521  	TYPE==	JMS I	.;	TYPCTV
	 00121	2200  
 628		4522  	OUTPUT==	JMS I	.;OUTR,	ERRXX	/** MUST BE ONE MORE THAN "TYPE"
	 00122	2600  
 629							/PROBABLY NOT ANY MORE (19-JUN-77)
 630		4523  	CRLF==	JMS I	.;	TYCRLF
	 00123	3033  
 631		4524  	GETQ==	JMS I	.;	GETQX
	 00124	0422  
 632		4525  	SKPSET==	JMS I	.;	SETSKP
	 00125	0000 *
 633		2024  	NCHK==	ISZ	NFLG		/USED TO BE A SUBROUTINE CALL
 634		4526  	CTCCHK=	JMS I	.;	CHKCTC
	 00126	0453  
 635		4527  	BZCHK=	JMS I	.;	CHKBZ
	 00127	4611  
 636		4530  	QCHK==	JMS I	.;	CHKQF
	 00130	3657  
 637		4531  	QSKP==	JMS I	.;	QOVER
	 00131	2367  
 638		4532  	QREF==	JMS I	.;	QREFER
	 00132	2477  
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 16
                                                 FILE # 1

 639			
 640		4533  	QSUM=		JMS I	.;	QSUMR
	 00133	2400  
 641		4534  	QPUT==		JMS I	.;	QPUTS
	 00134	0400  
 642		4535  	QUOTST==	JMS I	.;	QTST
	 00135	2563  
 643		4536  	SETCMD=		JMS I	.;	CMDSET
	 00136	2465  
 644		4537  	GETN=		JMS I	.;	NGET
	 00137	3057  
 645		4540  	ADJQ==		JMS I	.;	QADJ
	 00140	2265  
 646		4541  	MQLDVI==	JMS I	.;	DVIMQL
	 00141	3637  
 647		4542  	UPPERC=		JMS I	.;	CUPPER
	 00142	2750  
 648		4543  	SCANUP==	JMS I	.;	SCUPPR
	 00143	4624  
 649		4544  	TSTSEP==	JMS I	.;	SCHSRT
	 00144	3615  
 650		4545  	DISPLY==	JMS I	.;	DSPLAY
	 00145	0000 *
 651		4546  	NOTRCE==	JMS I	.;	SAVTRA
	 00146	3666  
 652		4547  	ENTRCE==	JMS I	.;	RESTRA
	 00147	3673  
 653		4550  	OVRLAY=		JMS I	.;	OVERLY
	 00150	2534  
 654		4551  	GETNUM==	JMS I	.;	NUMGET	/GET 13 BIT NUMBER INTO L,AC
	 00151	0643  
 655		4552  	PUTT==		JMS I	.;	TPUT
	 00152	0554  
 656		4553  	TESTA==		JMS I	.;	TSTA
	 00153	4535  
 657		4554  	TESTD==		JMS I	.;	TSTD
	 00154	0000 *
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 17
                                                 FILE # 1

 658			
 659			/	PAGE 0 LITERALS (THAT LINKER COULDN'T SHARE)
 660			
 661	 00155	7400  	Z7400,	7400
 662	 00156	0004  	Z4,	4
 663	 00157	0040  	Z40,	40
 664	 00160	0200  	Z200,	200
 665	 00161	7766  	ZM12,	-12
 666	 00162	7720  	ZM60,	-60
 667			Z7740,
 668	 00163	7740  	ZM40,	-40
 669			Z7700,
 670	 00164	7700  	ZM100,	-100
 671			ZM10,
 672	 00165	7770  	Z7770,	-10
 673	 00166	0377  	Z377,	377
 674	 00167	0177  	Z177,	177
 675	 00170	0077  	Z77,	77
 676	 00171	2555  	ZIREST,	IREST
 677	 00172	4456  	ZNXTBUF,NXTBUF
 678	 00173	4740  	ZQPNTR,	QPNTR
 679	 00174	0052  	Z52,	"*
 680	 00175	0100  	Z100,	100
 681	 00176	0137  	Z137,	137
 682	 00177	0006  	Z6,	6
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 18
                                                 FILE # 1

 683			
 684		0200  		.ASECT	TECO
 685			
 686			/ENTER HERE TO USE AN ASR33 AS THE TELETYPE
 687			
 688	 00200	2741  	TECOS,	ISZ I	SPUT	/IF CALLED BY "R" OR "RUN" - CHANGED TO TLS
 689	 00201	5731  	TECO1,	JMP I	COMPAR	/IF CALLED VIA "CHAIN" - CHANGED TO "JMP T0A"
 690	 00202	4331  	TBEL,	JMS	COMPAR	/HERE ON ^G - 2 ^G'S KILL ENTIRE COMMAND
 691			
 692	 00203	4523  	T0,	CRLF
 693	 00204	1260  	T0A,	TAD	PDL..B
 694	 00205	3042  		DCA	PDLP	/INITIALIZE PUSHDOWN LIST
 695	 00206	1042  	T1,	TAD	PDLP
 696	 00207	7041  		CIA
 697	 00210	1260  		TAD	PDL..B
 698	 00211	7640  		SZA CLA
 699				.ERROR	02	/ERROR - PUSHDOWN LIST DID NOT BALANCE
 700	 00213	1377  		TAD	(45
 701	 00214	4532  		QREF		/SET UP POINTERS TO COMMAND LINE
 702	 00215	1573  		TAD I	ZQPNTR
 703	 00216	3101  		DCA	OCMDLN	/SAVE OLD COMMAND LINE LENGTH
 704						/** SAVE ONLY IF < 20?
 705	 00217	4540  		ADJQ		/REDUCE COMMAND LINE LENGTH TO 0
 706	 00220	7100  		CLL
 707	 00221	4511  		PUSHJ
 708	 00222	0000 *			NRET	/CLEAR NUMBER AND LAST OPERATOR
 709	 00223	3034  		DCA	MPDL	/DELETE MACRO FLAG
 710	 00224	3032  		DCA	ITRST	/ALSO ITERATION FLAG,
 711	 00225	3022  		DCA	CLNF	/AND COLON FLAG
 712	 00226	4511  		PUSHJ		/KILL QUOTE FLAG
 713	 00227	2765  			ZROSPN	/KILL QUOTE AND NUMBER FLAGS AND SCAN POINTER
 714	 00230	6032  		KCC		/KILL ^O IF IN KEYBOARD BUFFER
 715	 00231	1776  		TAD I	(ETFLAG
 716	 00232	0375  		AND	(3537	/KILL FATAL ERROR RETURN AND ^C TRAP AND READ W NO WAIT
 717	 00233	3776  		DCA I	(ETFLAG
 718	 00234	3023  		DCA	TFLG	/PROMPT SHOULD CLEAR TRACE FLAG
 719	 00235	1374  		TAD	(AIDLST
 720	 00236	3246  		DCA	SRT+1	/FIRST CHARACTER AFTER PROMPT IS SPECIAL
 721	 00237	1174  		TAD	Z52
 722	 00240	7410  		SKP
 723	 00241	4773  	ROCMND,	JMS I	(BACKUP	/BACK UP AND GET LAST CHAR
 724	 00242	4521  		TYPE
 725	 00243	3031  	T2M1,	DCA	CHAR	/KILL CHAR TO PREVENT SPURIOUS DOUBLE CHARACTERS
 726	 00244	4520  	T2,	LISTEN		/BUILD COMMAND LINE
 727			SRT,	.SORT	AIDLST,AIDTAB	/CHECK FOR SPECIAL FIRST CHARACTERS
 728				.SORT	COMLST,COMTAB	/CHECK FOR IMMEDIATE MODE COMMANDS
 729	 00253	3031  	T2A,	DCA	CHAR
 730	 00254	1054  		TAD	Z11	/GUARANTEED NEGATIVE NUMBER INDICATES NULL LIST (11 CONTAINS SERR)
 731	 00255	3246  		DCA	SRT+1	/NOT AT FIRST CHARACTER ANY MORE
 732	 00256	4341  		JMS	SPUT	/PUT INTO C.L. BUFFER
 733	 00257	5244  		JMP	T2	/GO GET ANOTHER
 734			
 735	 00260	0000 *	PDL..B,	PDLBEG
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 19
                                                 FILE # 1

 736			
 737	 00261	1053  	TCRLF,	TAD	CACR	/CR IN COMM LINE
 738	 00262	3031  		DCA	CHAR
 739	 00263	4341  		JMS	SPUT	/PUT INTO COMM LINE
 740	 00264	1060  		TAD	CALF	/THEN PUT IN A LF
 741	 00265	5253  		JMP	T2A	/AND GET SOME MORE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 20
                                                 FILE # 1

 742			
 743				.SBTTL	.	Command Execution Loop
 744			
 745	 00266	4331  	TALTM,	JMS	COMPAR	/2ND ALTM STARTS EXECUTION
 746	 00267	4523  		CRLF		/START COMM EXECUTION
 747	 00270	3514  		DCA I	ERROR	/CLEAR ERROR JUST OCCURRED FLAG
 748	 00271	1377  	CHTECO,	TAD	(45	/NUMBER OF INPUT COMMAND Q-REGISTER
 749	 00272	4536  		SETCMD		/SET UP THE INPUT LINE AS THE CURRENT COMMAND LINE
 750	 00273	4543  	6$:	SCANUP
 751	 00274	3031  	T6A:	DCA	CHAR	/SAVE COMMAND CHAR
 752	 00275	1031  		TAD	CHAR
 753	 00276	1372  		TAD	(CDSP	/ADD BASE OF DISPATCH TABLE
 754	 00277	3317  		DCA	8$	/LOOK UP ENTRY IN
 755	 00300	1371  		TAD	(OVBRAN	/PREPARE TO DISPATCH TO OVERLAY
 756	 00301	3307  		DCA	7$
 757	 00302	1717  		TAD I	8$	/COMMAND DISPATCH TABLE
 758	 00303	7500  		SMA		/IS AN OVERLAY NECESSARY?
 759	 00304	3307  		DCA	7$	/NO, CALL RECURSIVELY
 760	 00305	7100  		CLL		/YES
 761	 00306	4511  		PUSHJ
 762	 00307	0000  	7$:		0	/CALL TO ROUTINE
 763	 00310	7200  		CLA		/** AC MAY NOT BE ZERO HERE **
 764	 00311	1024  		TAD	NFLG
 765	 00312	7710  		SPA CLA
 766	 00313	5273  		JMP	6$
 767	 00314	3027  		DCA	N	/IF WE ARE NOT ENTERING A NUMBER
 768	 00315	3030  		DCA	NLINK	/SET 13-BIT N TO 0
 769	 00316	5273  		JMP	6$	/KEEP INTERPRETING
 770			
 771	 00317	0000  	8$:	0
 772			
 773			TQMK,	.OVRLAY E,QMK
 774			
 775			TSLASH,	.OVRLAY E,XH
 776			
 777			VBAR,	.OVRLAY Q,VBARE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 21
.	Command Execution Loop                         FILE # 1

 778			
 779	 00331	0000 *	COMPAR,	TCINIT		/LOOK FOR DOUBLED COMM LINE CHARS
 780	 00332	1035  		TAD	SCHAR	/MOST RECENT
 781	 00333	7041  		CIA
 782	 00334	1031  		TAD	CHAR	/PREVIOUS
 783	 00335	7640  		SZA CLA
 784	 00336	5516  		RESORT		/NOT THE SAME
 785	 00337	4341  		JMS	SPUT	/PUT THE CHAR INTO THE COMMAND LINE AND ECHO IT
 786	 00340	5731  		JMP I	COMPAR	/SAME-SPECIAL HANDLING
 787			
 788	 00341	0000 *	SPUT,	JTECO		/PUT CHAR INTO COMM LINE
 789	 00342	1051  		TAD	QZ
 790	 00343	3050  		DCA	QP
 791	 00344	1031  		TAD	CHAR
 792	 00345	4534  		QPUT		/STORE CHARACTER AWAY
 793	 00346	1573  		TAD I	ZQPNTR
 794	 00347	7001  		IAC
 795	 00350	4540  		ADJQ		/ADJUST COMMAND LINE REGISTER LENGTH
 796	 00351	1031  		TAD	CHAR
 797	 00352	4521  		TYPE		/TYPE THE INSERTED CHARACTER
 798	 00353	1573  		TAD I	ZQPNTR
 799	 00354	1060  		TAD	Z12
 800	 00355	7710  		SPA CLA
 801	 00356	5364  		JMP	1$	/TYPE BELL IF WITHIN 12 CHARACTERS OF 2048
 802	 00357	7100  		CLL
 803	 00360	1051  		TAD	QZ
 804	 00361	1367  		TAD	QLIMIT
 805	 00362	7620  		SNL CLA		/TYPE A BELL IF THE LINE IS
 806	 00363	5741  		JMP I	SPUT	/ WITHIN 12 CHARS OF OVERFLOW
 807	 00364	1052  	1$:	TAD	Z7	/EMERGENCY!
 808	 00365	4552  		PUTT
 809	 00366	5741  		JMP I	SPUT
 810	 00367	4072  	QLIMIT,	12-QMAX
	------
	 00371	2616  
	 00372	0000 *
	 00373	3070  
	 00374	4510  
	 00375	3537  
	 00376	4552  
	 00377	0045  
 811		0400  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 22
.	Command Execution Loop                         FILE # 1

 812			
 813				.SBTTL	.	Q-register pack and unpack
 814			
 815				/THE Q-REGISTERS ARE STORED IN THE UPPER 4 BITS OF THE WORDS
 816				/WHICH HAVE THE TEXT BUFFER CHARACTERS IN THEIR LOWER 8 BITS.
 817				/THEREFORE EACH Q-REGISTER CHARACTER TAKES 2 WORDS.
 818			
 819	 00400	0000  	QPUTS,	0		/STORE THROUGH POINTER "QP" AND BUMP POINTER
 820	 00401	7106  		CLL RTL
 821	 00402	7006  		RTL
 822	 00403	3222  		DCA	GETQX	/SAVE CHARACTER
 823	 00404	1050  		TAD	QP
 824	 00405	7104  		CLL RAL
 825	 00406	3253  		DCA	CHKCTC	/COMPUTE CORE POINTER = 2*QP
 826	 00407	6211  		CDF 10
 827	 00410	1222  		TAD	GETQX
 828	 00411	4243  		JMS	ST4BTS	/STORE HIGH ORDER 4 BITS
 829	 00412	2253  		ISZ	CHKCTC
 830	 00413	1222  		TAD	GETQX
 831	 00414	7106  		CLL RTL
 832	 00415	7006  		RTL
 833	 00416	4243  		JMS	ST4BTS	/STORE LOW ORDER 4 BITS
 834	 00417	6201  		CDF 0
 835	 00420	2050  		ISZ	QP	/BUMP POINTER
 836	 00421	5600  		JMP I	QPUTS
 837			
 838	 00422	0000  	GETQX,	0
 839	 00423	7104  		CLL RAL
 840	 00424	3253  		DCA	CHKCTC	/COMPUTE CORE POINTER = 2*AC
 841	 00425	6211  		CDF 10
 842	 00426	1653  		TAD I	CHKCTC
 843	 00427	0155  		AND	Z7400	/FETCH HIGH ORDER
 844	 00430	2253  		ISZ	CHKCTC
 845	 00431	3200  		DCA	QPUTS
 846	 00432	1653  		TAD I	CHKCTC
 847	 00433	0155  		AND	Z7400	/FETCH LOW ORDER
 848	 00434	7112  		CLL RTR
 849	 00435	7012  		RTR
 850	 00436	1200  		TAD	QPUTS	/COMBINE TO FORM CHARACTER
 851	 00437	7012  		RTR
 852	 00440	7012  		RTR
 853	 00441	6201  		CDF 0
 854	 00442	5622  		JMP I	GETQX
 855			
 856	 00443	0000  	ST4BTS,	0
 857	 00444	0155  		AND	Z7400
 858	 00445	3301  		DCA	POPXX
 859	 00446	1653  		TAD I	CHKCTC
 860	 00447	0166  		AND	Z377
 861	 00450	1301  		TAD	POPXX
 862	 00451	3653  		DCA I	CHKCTC	/STORE HIGH ORDER
 863	 00452	5643  		JMP I	ST4BTS
 864			
 865			/MANY LOCATIONS ABOVE ARE FREE IN 12K
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 23
.	Q-register pack and unpack                     FILE # 1

 866			
 867	 00453	0000  	CHKCTC,	0		/SUBROUTINE TO CHECK FOR ^C IN KEYBOARD
 868						/** AC MAY NOT BE 0 ON ENTRY
 869	 00454	7600  	C7600,	7600		/JUST IN CASE THERE IS NO MQ
 870	 00455	6031  	VT52B,	KSF		/*VT52
 871	 00456	5653  		JMP I	CHKCTC	/*VT52 NO CHAR IN KEYBOARD BUFFER - EXIT
 872	 00457	6034  		KRS		/*VT52
 873	 00460	0167  		AND	Z177	/KILL PARITY BIT
 874	 00461	1377  		TAD	(-3
 875	 00462	7440  		SZA		/^C?
 876	 00463	5653  	CHKCTR,	JMP I	CHKCTC	/NO - RESUME WITH NON-ZERO AC
 877				.ERROR	34	/^C, EXECUTION ABORTED
 878			
 879				.SBTTL	Cmd ^C
 880			
 881	 00465	6041  	CTL.C,	TSF
 882	 00466	5265  		JMP	CTL.C	/WAIT FOR TELETYPE TO DIE DOWN
 883	 00467	5654  		JMP I	C7600	/RETURN TO OS/8
 884			
 885			
 886	 00470	3222  	POPJXX,	DCA	GETQX	/POPJ ROUTINE
 887	 00471	4510  		POP
 888	 00472	3301  	POPJXY,	DCA	POPXX
 889	 00473	1222  		TAD	GETQX
 890	 00474	5701  		JMP I	POPXX
 891			
 892				.SBTTL	Cmd ^
 893			
 894	 00475	4510  	CHR.UA,	POP		/^ COMMAND - POP OFF RETURN ADDRESS
 895	 00476	4543  		SCANUP		/GET THE NEXT CHARACTER IN UPPER CASE
 896	 00477	0170  		AND	Z77	/MAKE IT A CONTROL CHARACTER
 897	 00500	5776  		JMP I	(T6A	/USE IT INSTEAD OF THE ^
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 24
Cmd ^                                            FILE # 1

 898			
 899				.SBTTL	.	Push down list routines
 900			
 901	 00501	0000  	POPXX,	0		/POP ROUTINE
 902	 00502	7240  		STA
 903	 00503	1042  		TAD	PDLP
 904	 00504	3042  		DCA	PDLP
 905	 00505	1442  		TAD I	PDLP
 906	 00506	5701  		JMP I	POPXX
 907			
 908	 00507	0000  	PUSHXX,	0		/PUSH ROUTINE (DOESN'T AFFECT LINK)
 909	 00510	3442  		DCA I	PDLP
 910	 00511	2042  		ISZ	PDLP	/BUMP PUSHDOWN POINTER
 911	 00512	1042  		TAD	PDLP	/CHECK FOR EXACTLY FULL - THIS ALLOWS THE
 912	 00513	1317  		TAD	PDL..E
 913	 00514	7650  		SNA CLA		/** ERROR ROUTINE TO DO A PUSHJ
 914				.ERROR	04	/FULL - REPORT IT
 915	 00516	5707  		JMP I	PUSHXX
 916			
 917	 00517	**** *	PDL..E,	-PDLEND
 918			
 919	 00520	0000  	PUSHJY,	0		/PUSHJ ROUTINE (DOESN'T AFFECT LINK)
 920	 00521	3222  		DCA	GETQX
 921	 00522	7001  		IAC		/** LINK SHOULD BE PRESERVED ON EXIT
 922	 00523	1320  		TAD	PUSHJY
 923	 00524	4507  		PUSH
 924	 00525	1720  		TAD I	PUSHJY
 925	 00526	5272  		JMP	POPJXY
 926			
 927	 00527	0000  	PUSHLX,	0		/PUSH AND CLEAR A LIST
 928	 00530	7100  		CLL
 929	 00531	7500  		SMA		/PUSH LIST IF AC<0, POP IT IF >=0
 930	 00532	7160  		CMA STL
 931	 00533	3320  		DCA	PUSHJY	/SET COUNTER
 932	 00534	7004  		RAL		/** DEPENDS ON FACT THAT POP=PUSH+1 **
 933	 00535	1352  		TAD	3$
 934	 00536	3344  		DCA	2$	/STORE EITHER A "PUSH" OR A "POP"
 935	 00537	4510  		POP		/SAVE RETURN POINTER
 936	 00540	3253  		DCA	CHKCTC
 937	 00541	1727  	1$:	TAD I	PUSHLX
 938	 00542	3222  		DCA	GETQX
 939	 00543	1622  		TAD I	GETQX
 940	 00544	4507  	2$:	PUSH		/PUSH OR POP
 941	 00545	3622  		DCA I	GETQX	/IF PUSHYX=PUSH, THIS ZEROES THE PUSHED LOCATION
 942	 00546	2327  		ISZ	PUSHLX
 943	 00547	2320  		ISZ	PUSHJY
 944	 00550	5341  		JMP	1$
 945	 00551	1253  		TAD	CHKCTC	/RESTORE RETURN POINTER
 946	 00552	4507  	3$:	PUSH
 947	 00553	5727  		JMP I	PUSHLX
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 25
.	Push down list routines                        FILE # 1

 948			
 949	 00554	0000  	TPUT,	0		/TELETYPE OUTPUT
 950	 00555	3104  		DCA	TEMPT
 951	 00556	4526  	TPUTX,	CTCCHK		/CHECK FOR ^C
 952	 00557	1375  		TAD	(3-17	/INHIBIT PRINTING AS LONG AS THERE
 953	 00560	7450  		SNA		/IS A ^O IN THE KEYBOARD BUFFER.
 954	 00561	5754  		JMP I	TPUT
 955	 00562	1374  		TAD	(17-23	/CHECK FOR ^S
 956	 00563	7650  		SNA CLA
 957	 00564	5356  		JMP	TPUTX
 958	 00565	6041  		TSF		/WAIT FOR TELETYPE FLAG
 959	 00566	5365  	TSFWT,	JMP	.-1	/WHILE WAITING, DISPLAY TEXT ON SCOPE
 960	 00567	1104  		TAD	TEMPT
 961	 00570	6046  		TLS
 962	 00571	3373  		DCA	OUTDNE
 963	 00572	5754  		JMP I	TPUT
 964	 00573	0000  	OUTDNE,	0
	------
	 00574	7774  
	 00575	7764  
	 00576	0274  
	 00577	7775  
 965		0600  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 26
.	Push down list routines                        FILE # 1

 966			
 967				.SBTTL	Cmd J
 968			
 969	 00600	3024  	CHR.J,	DCA	NFLG	/COMMAND J
 970	 00601	4551  		GETNUM		/CAUSE NEG ARGUMENT TO GIVE A POP
 971	 00602	5210  		JMP	CLOQ
 972			
 973				.SBTTL	Cmd R
 974			
 975	 00603	4537  	CHR.R,	GETN		/GET LAST NUMBER, DEFAULT=(+ OR -)1
 976	 00604	7061  	CHR1,	CML CIA		/NEGATE 13-BIT NUMBER
 977	 00605	7410  		SKP
 978			
 979				.SBTTL	Cmd C
 980			
 981	 00606	4537  	CHR.C,	GETN		/GET LAST NUMBER, DEFAULT=(+ OR -)1
 982	 00607	1044  		TAD	P	/OFFSET RELATIVE TO .
 983			/
 984			/	*** LINK NOT ALWAYS SET RIGHT
 985			/
 986	 00610	4527  	CLOQ,	BZCHK		/SEE IF IN RANGE B,Z
 987				.ERROR	11	/?POP
 988	 00612	3044  		DCA	P	/IN RANGE
 989	 00613	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 27
Cmd C                                            FILE # 1

 990			
 991				.SBTTL	Cmd L
 992			
 993	 00614	4537  	CHR.L,	GETN		/GET LAST NUMBER, DEFAULT=(+ OR -)1
 994	 00615	6211  	CHRL1,	CDF 10
 995	 00616	7470  		SZL SNA
 996	 00617	5232  		JMP	2$
 997	 00620	7041  		CIA
 998	 00621	3102  		DCA	CDT
 999	 00622	1044  	L$:	TAD	P
1000	 00623	7041  		CIA
1001	 00624	1045  		TAD	ZZ
1002	 00625	7650  		SNA CLA		/IF WE ARE AT THE END OF THE BUFFER,
1003	 00626	5366  		JMP	DNN3	/RETURN
1004	 00627	4777  		JMS I	(CHLCMP	/COMPARE CHARACTER AGAINST LINE FEED
1005	 00630	2044  		ISZ	P
1006	 00631	5222  		JMP	L$	/KEEP GOING UNTIL WE GET THERE OR OVERFLOW BUFFER
1007	 00632	1376  	2$:	TAD	(-1
1008	 00633	3102  		DCA	CDT
1009	 00634	7340  	1$:	CLA CMA CLL
1010	 00635	1044  		TAD	P
1011	 00636	3044  		DCA	P	/MOVE POINTER BACKWARD 1
1012	 00637	7420  		SNL
1013	 00640	5775  		JMP I	(CHRLI	/OOPS - PAST THE BEGINNING OF THE BUFFER - RETURN
1014	 00641	4777  		JMS I	(CHLCMP	/COMPARE CHARACTER AGAINST LINE FEED
1015	 00642	5234  		JMP	1$	/NOT SATISFIED YET - KEEP LOOPING
1016			
1017	 00643	0000  	NUMGET,	0		/PUT 13-BIT NUMBER IN L,AC
1018	 00644	1030  		TAD	NLINK
1019	 00645	7110  		CLL RAR
1020	 00646	1027  		TAD	N
1021	 00647	5643  		JMP I	NUMGET
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 28
Cmd L                                            FILE # 1

1022			
1023				.SBTTL	Cmd D
1024			
1025	 00650	1021  	CHR.D,	TAD	CFLG	/WAS THERE A COMMA?	*WM
1026	 00651	7640  		SZA CLA		/IF COMMA, TREAT LIKE N,MK
1027	 00652	5326  		JMP	CHR.K	/YES, 2 ARGS TO D
1028	 00653	4537  		GETN		/GET LAST NUMBER, DEFAULT=(+ OR -)1
1029	 00654	7420  		SNL		/SIGN BIT OF 13-BIT NUMBER IS IN LINK
1030	 00655	5333  		JMP	PLUSND	/+ND
1031	 00656	7141  		CLL CIA
1032	 00657	3102  		DCA	CDT	/-ND
1033	 00660	1102  		TAD	CDT
1034	 00661	4511  		PUSHJ		/DO (-)NC(+)ND
1035	 00662	0604  			CHR1
1036	 00663	1102  		TAD	CDT
1037	 00664	5333  		JMP	PLUSND
1038			
1039	 00665	7450  	ADJ,	SNA		/ADJUST BUFFER + OR - N CHARS
1040						/TEST FOR NOTHING
1041	 00666	5512  		POPJ		/GO AWAY
1042	 00667	7120  		STL		/MOVE UP N CHARACTERS
1043	 00670	1045  		TAD	ZZ	/ADD TO MAX CHARACTER
1044	 00671	3047  		DCA	R	/NEW HIGHEST
1045	 00672	1047  		TAD	R	/SEE IF TOO HIGH
1046	 00673	1374  		TAD	(-ZMAX
1047	 00674	7660  		SNL SZA CLA	/TWO PLACES FOR OVERFLOW THERE
1048				.ERROR	05
1049	 00676	1045  		TAD	ZZ
1050	 00677	3046  		DCA	Q
1051	 00700	1047  		TAD	R
1052	 00701	3045  		DCA	ZZ
1053	 00702	6211  		CDF 10
1054	 00703	1046  	UPNL,	TAD	Q
1055	 00704	7041  		CIA
1056	 00705	1044  		TAD	P
1057	 00706	7650  		SNA CLA		/FINISHED?
1058	 00707	5366  		JMP	DNN3	/YES
1059	 00710	7040  		CMA
1060	 00711	1046  		TAD	Q
1061	 00712	3046  		DCA	Q
1062	 00713	7040  		CMA
1063	 00714	1047  		TAD	R
1064	 00715	3047  		DCA	R
1065	 00716	1446  		TAD I	Q	/GET A CHAR
1066	 00717	0166  	L12K1,	AND	Z377	/JMP .+5  IF 12K
1067	 00720	3370  		DCA	CHLTMP
1068	 00721	1447  		TAD I	R	/BE CAREFUL NOT TO
1069	 00722	0155  		AND	Z7400	/DESTROY THE HIGH-
1070	 00723	1370  		TAD	CHLTMP	/ORDER 4 BITS
1071		5324  	J12K1=	JMP	.
1072	 00724	3447  		DCA I	R	/AND PUT IT IN THE LOW PART OF THE TARGET WORD
1073	 00725	5303  		JMP	UPNL
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 29
Cmd D                                            FILE # 1

1074			
1075				.SBTTL	Cmd K
1076			
1077	 00726	4773  	CHR.K,	JMS I	(NLINES	/CONVERT LINES TO CHARS
1078	 00727	3102  		DCA	CDT
1079	 00730	1026  		TAD	M	/SET POINTER
1080	 00731	3044  		DCA	P	/LOWER ARG
1081	 00732	1102  		TAD	CDT
1082	 00733	7450  	PLUSND,	SNA
1083	 00734	5512  		POPJ		/IGNORE 0D
1084	 00735	7100  	ADJ2,	CLL
1085	 00736	1044  		TAD	P	/MOVE DOWN N CHARACTERS
1086	 00737	4527  		BZCHK
1087				.ERROR	37	/DELETE TOO BIG
1088	 00741	3046  		DCA	Q	/N IN AC
1089	 00742	1044  		TAD	P
1090	 00743	3047  		DCA	R
1091	 00744	6211  		CDF 10
1092	 00745	1045  	DNN1,	TAD	ZZ
1093	 00746	7041  		CIA
1094	 00747	1046  		TAD	Q
1095	 00750	7650  		SNA CLA		/FINISHED?
1096	 00751	5364  		JMP	DNN2
1097	 00752	1446  		TAD I	Q	/GET A CHAR
1098	 00753	0166  	L12K2,	AND	Z377	/JMP .+5  IF 12K
1099	 00754	3370  		DCA	CHLTMP
1100	 00755	1447  		TAD I	R	/BE CAREFUL NOT TO
1101	 00756	0155  		AND	Z7400	/DESTROY THE HIGH-
1102	 00757	1370  		TAD	CHLTMP	/ORDER 4 BITS
1103		5360  	J12K2=	JMP	.
1104	 00760	3447  		DCA I	R	/AND PUT IT IN THE LOW PART OF THE TARGET WORD
1105	 00761	2046  		ISZ	Q
1106	 00762	2047  		ISZ	R
1107	 00763	5345  		JMP	DNN1
1108	 00764	1047  	DNN2,	TAD	R
1109	 00765	3045  		DCA	ZZ
1110	 00766	6201  	DNN3,	CDF	0
1111	 00767	5512  		POPJ
1112			
1113	 00770	0000  	CHLTMP,	0
1114			
1115			/GO TO ADJ TO MOVE UP TEXT
1116			/GOTO ADJ2 TO MOVE DOWN TEXT
1117			/IN EITHER CASE, AC CONTAINS NUMBER OF CHARS TO MOVE (0-4095)
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 30
Cmd K                                            FILE # 1

1118			
1119	 00771	5772  	C.W,	JMP I	(CHR.W	/THIS MUST BE BELOW 4000
	------
	 00772	4440  
	 00773	1716  
	 00774	0140  
	 00775	3114  
	 00776	7777  
	 00777	3102  
1120		1000  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 31
Cmd K                                            FILE # 1

1121			
1122				.SBTTL	.	Scope subroutines
1123			
1124		0200  		.ASECT TEC0B
1125			
1126		1400  		*1400
1127			
1128			/CURSOR RIGHT IS $C
1129			/CURSOR UP IS $A
1130			/ERASE LINE IS $K
1131			
1132	 01400	0000  	BUGFLG,	0		/-1 MEANS MUST RETYPE LINE ON NEXT RUBOUT
1133			
1134	 01401	0000  	BSP,	0
1135	 01402	1230  		TAD	TTY10
1136	 01403	4552  		PUTT		/TYPE BS, SPACE, BS
1137	 01404	1245  		TAD	TTY40
1138	 01405	4552  		PUTT
1139	 01406	1230  		TAD	TTY10
1140	 01407	4552  		PUTT
1141	 01410	7240  		STA
1142	 01411	1777  		TAD I	(COLCT	/FIX UP COLUMN COUNTER
1143	 01412	3777  		DCA I	(COLCT
1144	 01413	5601  		JMP I	BSP
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 32
.	Scope subroutines                              FILE # 1

1145			
1146	 01414	4776  	SCOPY,	JMS I	(BACKUP	/BACK UP ONE CHAR IN CMD LINE
1147	 01415	1163  		TAD	ZM40	/LOOK AT CHAR WE BACKED OVER
1148	 01416	7500  		SMA
1149	 01417	5226  		JMP	SCP.RO	/IT'S EASY TO RUB THIS ONE OUT
1150	 01420	1157  		TAD	Z40	/RESTORE CHARACTER
1151				.SORT	CTLBEL,SCPTAB
1152	 01424	7200  	SCP.BEL,CLA
1153	 01425	4201  		JMS	BSP	/^X NEEDS TWO RUB OUTS
1154	 01426	7200  	SCP.RO,	CLA
1155	 01427	2200  		ISZ	BUGFLG	/MAYBE WE REALLY SHOULD REPRINT LINE
1156	 01430	7410  	TTY10,	SKP		/NOT NECESSARY
1157	 01431	5261  		JMP	SCP.CR	/NECESSARY (PREVIOUS VERTICAL MOTION MAY
1158						/HAVE SCROLLED OFF TOP OF SCREEN)
1159	 01432	4201  		JMS	BSP	/RUB IT OUT
1160	 01433	3200  	SCOPGO,	DCA	BUGFLG
1161	 01434	5775  		JMP I	(T2M1
1162			
1163	 01435	1052  	SCP.LF,	TAD	CTLBEL	/CURSOR UP 1
1164	 01436	1374  	SCP.FF,	TAD	(-4	/CURSOR UP 8
1165	 01437	1374  	SCP.VT,	TAD	(-4	/CURSOR UP 4
1166	 01440	3201  		DCA	BSP
1167	 01441	4773  		JMS I	(ESCAPE
1168	 01442	0101  	VT05B,	101		/CURSOR UP
1169	 01443	2201  		ISZ	BSP
1170	 01444	5241  		JMP	.-3
1171	 01445	7240  	TTY40,	STA
1172	 01446	5233  		JMP	SCOPGO
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 33
.	Scope subroutines                              FILE # 1

1173			
1174				.SBTTL	Imm ^G<space>
1175				.SBTTL	Imm ^G*
1176			
1177	 01447	1161  	TSPACE,	TAD	ZM12
1178	 01450	3326  	TSTAR,	DCA	BCHAR
1179	 01451	1031  		TAD	CHAR	/LOOK AT PREVIOUS CHARACTER
1180	 01452	1372  		TAD	(-7
1181	 01453	7640  		SZA CLA		/WAS IT ^G ?
1182	 01454	5516  		RESORT		/NO
1183	 01455	7240  		STA		/YES
1184	 01456	1573  		TAD I	ZQPNTR	/REDUCE CMD LINE BY 1 CHAR
1185	 01457	4540  		ADJQ		/I.E. GET RID OF ^G
1186	 01460	5263  		JMP	BLSP1
1187			
1188	 01461	1161  	SCP.CR,	TAD	ZM12
1189	 01462	3326  		DCA	BCHAR
1190	 01463	4523  	BLSP1,	CRLF		/TAD	CACR
1191	 01464	7000  	BLSP2,	NOP		/TYPE
1192	 01465	1063  		TAD	MQ
1193	 01466	3325  		DCA	SAVMQ
1194	 01467	3063  		DCA	MQ
1195	 01470	1051  		TAD	QZ	/START FROM END OF COMMAND LINE
1196	 01471	3050  	L$:	DCA	QP	/AND SEARCH FOR LF
1197	 01472	7240  		STA
1198	 01473	1063  		TAD	MQ	/COUNT HOW MANY
1199	 01474	3063  		DCA	MQ
1200	 01475	1072  		TAD	QBASE
1201	 01476	7040  		CMA
1202	 01477	1050  		TAD	QP
1203	 01500	7510  		SPA
1204	 01501	5312  		JMP	2$
1205	 01502	1072  		TAD	QBASE
1206	 01503	4524  		GETQ
1207	 01504	1326  		TAD	BCHAR	/LOOK FOR LF
1208	 01505	7650  		SNA CLA		/IS IT LF?
1209	 01506	5315  		JMP	3$	/YES
1210	 01507	7240  		STA		/NO
1211	 01510	1050  		TAD	QP	/BUMP BACK ONE MORE CHAR
1212	 01511	5271  		JMP	L$
1213			
1214	 01512	7200  	2$:	CLA
1215	 01513	1174  		TAD	Z52	/PRINT ANOTHER *
1216	 01514	4521  		TYPE
1217	 01515	4511  	3$:	PUSHJ
1218	 01516	2762  			COLG4	/REPRINT LINE TO END OF CMD LINE
1219	 01517	1325  		TAD	SAVMQ	/RESTORE MQ
1220	 01520	3063  		DCA	MQ
1221	 01521	7000  	BLSP3,	NOP		/JMS I	SCAPE
1222	 01522	7000  	BLSP4,	NOP		/113
1223	 01523	6032  		KCC
1224	 01524	5775  		JMP I	(T2M1
1225			
1226	 01525	0000  	SAVMQ,	0
1227	 01526	7766  	BCHAR,	-12		/CHAR WE'RE SEARCHING BACKWARDS FOR
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 33-1
Imm ^G*                                          FILE # 1

1228	 01527	0000 *	SCAPE,	ESCAPE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 34
Imm ^G*                                          FILE # 1

1229			
1230				.SBTTL	.	Sort and branch
1231			
1232	 01530	0000  	SORTB,	0		/SORT AND BRANCH ROUTINE
1233	 01531	3035  		DCA	SCHAR	/SAVE SORT CHAR
1234	 01532	7240  		STA
1235	 01533	1730  		TAD I	SORTB	/GET POINTER TO LIST
1236	 01534	2330  		ISZ	SORTB
1237	 01535	3017  		DCA	XR
1238	 01536	1417  	SORTA1,	TAD I	XR	/GET ITEM IN TEST LIST
1239	 01537	7510  		SPA		/END MARKED BY NEG VALUE
1240	 01540	5356  		JMP	SORTA2	/FELL OUT BOTTOM
1241	 01541	7161  		CIA STL
1242	 01542	1035  		TAD	SCHAR
1243	 01543	7640  		SZA CLA		/COMPARE SORT CHAR
1244	 01544	5336  		JMP	SORTA1	/NOT IT.
1245	 01545	1017  		TAD	XR	/GOT IT. NOW MAKE INDEX
1246	 01546	1730  		TAD I	SORTB	/TO JUMP TABLE
1247	 01547	3362  		DCA	COUNT$	/THIS IS TABLE POINTER
1248	 01550	1762  		TAD I	COUNT$	/GET JUMP ADDRESS FROM TABLE
1249	 01551	7510  		SPA		/IF IT IS NEGATIVE,
1250	 01552	5360  		JMP	3$	/IT'S NOT A JUMP ADDRESS - IT'S A VALUE
1251	 01553	3362  		DCA	COUNT$
1252	 01554	7300  		CLA CLL
1253	 01555	5762  		JMP I	COUNT$
1254	 01556	7300  	SORTA2:	CLA CLL		/FELL OUT BOTTOM
1255	 01557	1035  		TAD	SCHAR	/CARRY CHARACTER BACK TO
1256	 01560	2330  	3$:	ISZ	SORTB
1257	 01561	5730  		JMP I	SORTB	/DO SOMETHING ELSE
1258			
1259	 01562	0000  	COUNT$:	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 35
.	Sort and branch                                FILE # 1

1260			
1261	 01563	1424  	SCPTAB,	SCP.BEL		/BELL
1262	 01564	1461  		SCP.CR		/CR
1263	 01565	1461  		SCP.CR		/TAB
1264	 01566	1426  		SCP.RO		/ALT
1265	 01567	1436  		SCP.FF		/FF
1266	 01570	1437  		SCP.VT		/VT
1267	 01571	1435  		SCP.LF		/LF
	------
	 01572	7771  
	 01573	0000 *
	 01574	7774  
	 01575	0243  
	 01576	3070  
	 01577	2221  
1268		1600  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 36
.	Sort and branch                                FILE # 1

1269			
1270				.SBTTL	Cmd P
1271			
1272	 01600	4237  	CHR.P,	JMS	POKE	/LOOK AHEAD ONE CHARACTER
1273	 01601	4542  		UPPERC		/BUT IN UPPERCASE
1274	 01602	1377  		TAD	(-"W	/SEE IF IT'S "W"
1275	 01603	3104  		DCA	TEMPT	/SAVE KNOWLEDGE AS FLAG
1276	 01604	1104  		TAD	TEMPT
1277	 01605	7650  		SNA CLA
1278	 01606	4517  		SCAN		/PASS UP W
1279	 01607	7200  		CLA		/CLEAR W FROM AC
1280	 01610	1021  		TAD	CFLG
1281	 01611	7710  		SPA CLA		/IS THIS COMMAND  M,NP?
1282	 01612	5260  		JMP	CHRW	/YES - TREAT LIKE M,NPW
1283	 01613	4537  		GETN		/COMMAND P - GET # OF PAGES
1284	 01614	7470  		SZL SNA
1285				.ERROR	25	/NEG OR 0 ARG TO P
1286	 01616	7041  		CIA
1287	 01617	3236  		DCA	CPCT
1288	 01620	4511  	CPOA,	PUSHJ
1289	 01621	1656  			CPOC	/DO N<HPY>
1290	 01622	1104  		TAD	TEMPT	/IS NEXT CHARACTER W?
1291	 01623	7650  		SNA CLA
1292	 01624	5251  		JMP	NOYANK	/YES
1293			/	TAD	REND	/IF WANT P TO CREATE FF'S
1294			/	SZA CLA		/WHEN NO MORE INPUT FILE
1295	 01625	2036  		ISZ	FFFLAG	/NO, SAW FF?
1296	 01626	5231  		JMP	2$	/NO
1297	 01627	1056  		TAD	CAFF	/YES
1298	 01630	4522  		OUTPUT		/OUTPUT FF
1299	 01631	4511  	2$:	PUSHJ
1300	 01632	2035  			CHREY	/WHOEVER THOUGHT OF THE PW COMMAND SHOULD BE SHOT
1301	 01633	2236  	YANKY,	ISZ	CPCT
1302	 01634	5220  		JMP	CPOA
1303	 01635	5512  		POPJ
1304	 01636	0000  	CPCT,	0
1305			
1306	 01637	0000  	POKE,	0		/RETURN NEXT CHARACTER (BY LOOKING AHEAD)
1307	 01640	1073  		TAD	QLENGT
1308	 01641	7141  		CIA CLL
1309	 01642	1040  		TAD	SCANP
1310	 01643	7630  		SZL CLA		/MAKE SURE WE HAVEN'T RUN OFF END OF COMMAND LINE
1311	 01644	5637  		JMP I	POKE	/RETURN 0 IF NO CHAR
1312	 01645	1040  		TAD	SCANP
1313	 01646	1072  		TAD	QBASE
1314	 01647	4524  		GETQ
1315	 01650	5637  		JMP I	POKE	/LEAVE CHAR IN AC
1316			
1317	 01651	1056  	NOYANK,	TAD	CAFF	/NPW OUTPUTS FFS
1318	 01652	4522  		OUTPUT
1319	 01653	5233  		JMP	YANKY
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 37
Cmd P                                            FILE # 1

1320			
1321				.SBTTL	Cmd T
1322			
1323	 01654	1103  	CHR.T,	TAD	KTYPE
1324	 01655	5261  		JMP	CHRT2
1325			
1326	 01656	4511  	CPOC,	PUSHJ
1327	 01657	3120  			CHR.H
1328	 01660	1376  	CHRW,	TAD	(OUTPUT
1329	 01661	3302  	CHRT2,	DCA	CWOUT	/P AND T COMMANDS - SAME THING, DIFFERENT DEVICES
1330	 01662	4316  		JMS	NLINES	/CONVERT LINES TO CHARS
1331	 01663	7040  	CWOA,	CMA
1332	 01664	3316  		DCA	NLINES	/SET CHARACTER COUNT
1333	 01665	1316  		TAD	NLINES
1334	 01666	7041  		CIA
1335	 01667	4541  		MQLDVI		/COMPUTE HOW MANY WORDS THIS OUTPUT WILL USE
1336	 01670	0006  		6		/(BY TAKING 2/3 OF THE NUMBER OF CHARACTERS,
1337	 01671	7126  		CLL CML RTL	/ BUT THAT'S SLOW SO WE TAKE 4/6 AND ROUND)
1338	 01672	4775  		JMS I	(FITS	/DETERMINE WHETHER THE OUTPUT WILL FIT
1339				.ERROR	17	/NO - TELL THE USER
1340	 01674	7200  		CLA		/CLEAR CRAP FROM AC
1341	 01675	5304  		JMP	CWOC
1342	 01676	6211  	CWOB,	CDF 10
1343	 01677	1426  		TAD I	M
1344	 01700	0167  		AND	Z177
1345	 01701	6201  		CDF 0
1346	 01702	0000  	CWOUT,	0		/TYPE, OUTPUT, OR QPUT
1347	 01703	2026  		ISZ	M
1348	 01704	2316  	CWOC,	ISZ	NLINES	/DONE?
1349	 01705	5276  		JMP	CWOB	/NO
1350	 01706	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 38
Cmd T                                            FILE # 1

1351			
1352				.SBTTL	Cmd X
1353			
1354	 01707	4532  	CHR.X,	QREF		/COMMAND X
1355	 01710	4316  		JMS	NLINES	/CONVERT LINES TO CHARS
1356	 01711	4540  		ADJQ		/ADJUST Q-REGISTERS AND SET UP NEW LENGTH.
1357	 01712	1374  		TAD	(QPUT
1358	 01713	3302  		DCA	CWOUT	/SET OUTPUT ROUTINE TO STORE INTO Q REG
1359	 01714	1063  		TAD	MQ	/LOAD THE CHARACTER COUNT
1360	 01715	5263  		JMP	CWOA	/GO TO TEXT OUTPUTTER
1361			
1362	 01716	0000  	NLINES,	0		/CONVERT + OR - N LINES AROUND . TO CHARS M,N
1363	 01717	2021  		ISZ	CFLG	/WAS THERE A COMMA?
1364	 01720	7410  		SKP		/NO
1365	 01721	5333  		JMP	1$	/YES - DON'T CONVERT LINES TO CHARS
1366	 01722	1044  		TAD	P
1367	 01723	3026  		DCA	M
1368	 01724	3021  		DCA	CFLG	/V3C
1369	 01725	4511  		PUSHJ		/CHR.L DOES A "GETN"
1370	 01726	0614  			CHR.L	/TO GET THE DEFAULT VALUES OF N
1371	 01727	1044  		TAD	P
1372	 01730	3027  		DCA	N
1373	 01731	1026  		TAD	M
1374	 01732	3044  		DCA	P
1375	 01733	3024  	1$:	DCA	NFLG	/CLEAR NFLG IN CASE COMMA FLAG WAS ON
1376	 01734	7100  		CLL		/M AND N ARE KNOWN TO BE 12-BITS LONG
1377						/AND POSITIVE
1378	 01735	1027  		TAD	N
1379	 01736	4527  		BZCHK		/IS N OK?
1380				.ERROR	38	/?POP REFERENCE OFF PAGE
1381	 01740	7140  		CMA CLL		/YES - COMPUTE N-M
1382	 01741	1026  		TAD	M	/BY COMPUTING M-N-1
1383	 01742	7040  		CMA		/AND COMPLEMENTING IT
1384	 01743	7420  		SNL		/IS M>N?
1385	 01744	5716  		JMP I	NLINES	/NO - RETURN N-M
1386	 01745	1026  		TAD	M	/N-M+M=N NOW IN AC.
1387	 01746	3236  		DCA	CPCT	/INTERCHANGE M AND N
1388	 01747	1026  		TAD	M
1389	 01750	3027  		DCA	N
1390	 01751	1236  		TAD	CPCT
1391	 01752	3026  		DCA	M
1392	 01753	5333  		JMP	1$
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 39
Cmd X                                            FILE # 1

1393			
1394				.SBTTL	Cmd ;
1395			
1396	 01754	1032  	CFSI,	TAD	ITRST
1397	 01755	7650  		SNA CLA
1398				.ERROR	24	/FAILING SEARCH NOT IN ITERATION
1399				.OVRLAY	Q,CSEM
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 40
Cmd ;                                            FILE # 1

1400			
1401				.SBTTL	Cmd ^A
1402			
1403	 01762	1103  	CTL.A,	TAD	KTYPE
1404	 01763	3372  	CEXP,	DCA	TO$
1405	 01764	1031  		TAD	CHAR
1406	 01765	3010  		DCA	QUOTE	/TERMINATING CHAR SAME AS COMMAND CHAR
1407	 01766	4530  		QCHK		/ALLOW @ ON ^A OR !
1408	 01767	3024  		DCA	NFLG	/KILL NUMBER IF PRESENT
1409	 01770	4535  	L$:	QUOTST
1410	 01771	5571  		JMP I	ZIREST
1411	 01772	0000  	TO$:	0		/TYPE OR IGNORE THE CHARACTER
1412	 01773	5370  		JMP	L$	/* TECHNICALLY WE CAN CALL QUOTST WITH NON-ZERO AC
	------
	 01774	4534  
	 01775	3750  
	 01776	4522  
	 01777	7651  
1413		2000  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 41
Cmd ^A                                           FILE # 1

1414			
1415				.SBTTL	Cmd A
1416			
1417	 02000	2024  	CHR.A,	NCHK		/COMMAND A
1418	 02001	5237  		JMP	CHAA
1419	 02002	4551  		GETNUM
1420	 02003	1044  		TAD	P
1421	 02004	3047  		DCA	R
1422	 02005	1047  		TAD	R
1423	 02006	7420  		SNL		/MAKE SURE CATCH -1
1424	 02007	7001  		IAC
1425	 02010	4527  		BZCHK
1426	 02011	5221  		JMP	APOP
1427	 02012	7200  		CLA
1428	 02013	6211  		CDF 10
1429	 02014	1447  		TAD I	R
1430	 02015	6201  		CDF	0
1431	 02016	0166  		AND	Z377
1432	 02017	7100  	NCOM14,	CLL
1433	 02020	5777  		JMP I	(NCOM
1434			
1435	 02021	7360  	APOP,	STL STA
1436	 02022	5777  		JMP I	(NCOM	/RETURN -1 IF POINTER REFERENCE OFF PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 42
Cmd A                                            FILE # 1

1437			
1438				.SBTTL	Cmd Y
1439			
1440	 02023	2024  	CHR.Y,	NCHK
1441	 02024	7610  		SKP CLA
1442				.ERROR	18	/NUMERIC ARGUMENT TO Y
1443	 02026	1122  		TAD	OUTR
1444	 02027	7041  		CIA
1445	 02030	1114  		TAD	ERROR
1446	 02031	7640  		SZA CLA
1447	 02032	1045  		TAD	ZZ
1448	 02033	7640  	YSKP,	SZA CLA		/*ED CHANGED TO SKP CLA TO NEVER ABORT Y COMMAND
1449				.ERROR	32	/Y COMMAND ABORTED
1450	 02035	3045  	CHREY,	DCA	ZZ
1451	 02036	3044  		DCA	P	/WIPE OUT THE BUFFER
1452	 02037	1376  	CHAA,	TAD	(ZMAX-1
1453	 02040	0037  		AND	REND
1454	 02041	7141  		CIA CLL
1455	 02042	1045  		TAD	ZZ	/IF WE HAVE ALREADY SEEN THE INPUT EOF,
1456	 02043	7630  		SZL CLA		/OR IF WE'RE ALREADY FULL (OR NEARLY SO)
1457	 02044	5363  		JMP	APLF	/GET OUT
1458	 02045	2075  	DECGET,	ISZ	ICRCNT
1459	 02046	5302  		JMP	I2	/NO NEED TO READ
1460	 02047	7100  		CLL
1461	 02050	1012  		TAD	INRSIZ
1462	 02051	1100  		TAD	INRCNT
1463	 02052	7420  	STECO1,	SNL		/"SKP!CLA" FOR SUPERTECO
1464	 02053	3100  		DCA	INRCNT	/UPDATE RECORD COUNT
1465	 02054	7172  	LFTAB,	CLL CML CMA RTR	/IF WE OVERFLOWED THE END OF THE FILE,	!
1466	 02055	7012  		RTR		/5 ENTRY TABLE: MUST BE - - - + +	!
1467	 02056	7012  		RTR		/SHORTEN THE READ BY THE CORRECT AMOUNT	!
1468	 02057	1367  		TAD	INCTLW	/					!
1469	 02060	3262  		DCA	INCTRL	/SO THAT WE WILL NOT READ TOO FAR	!
1470	 02061	4467  		JMS I	INHND
1471			I3,
1472	 02062	0400  	INCTRL,	0400
1473	 02063	6200  	BUFIN,	IN		/6200 IF 8K, 5600 IF 12K
1474	 02064	0000  	IBLK,	0
1475	 02065	7700  		SMA CLA
1476	 02066	7410  		SKP
1477	 02067	5365  		JMP	INER	/IGNORE END-OF-FILE ERRORS, WE'LL SEE THE ^Z.
1478	 02070	1264  		TAD	IBLK
1479	 02071	1012  		TAD	INRSIZ	/BUMP RECORD NUMBER BY THE MAXIMUM NUMBER
1480	 02072	3264  		DCA	IBLK	/(IF WE READ SHORT ITS THE LAST ONE ANYWAY)
1481	 02073	7240  		CLA CMA
1482	 02074	1263  		TAD	BUFIN
1483	 02075	3016  		DCA	INXR	/SET UP INPUT XR
1484	 02076	1370  		TAD	INPCNT
1485	 02077	3075  		DCA	ICRCNT
1486	 02100	7346  		MTHREE
1487	 02101	3262  		DCA	I3
1488	 02102	7000  	I2,	NOP		/CDF 20 IF 12K
1489	 02103	2262  		ISZ	I3
1490	 02104	5325  		JMP	1$	/NORMAL CHARACTER
1491	 02105	7346  		MTHREE		/WEIRD CHARACTER-RESET SWITCH
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 42-1
Cmd Y                                            FILE # 1

1492	 02106	3262  		DCA	I3
1493	 02107	7344  		MTWO
1494	 02110	1016  		TAD	INXR
1495	 02111	3016  		DCA	INXR	/MOVE INPUT XR BACK TO BEGINNING OF DBLWORD
1496	 02112	1416  		TAD I	INXR
1497	 02113	0155  		AND	Z7400
1498	 02114	3036  		DCA	FFFLAG	/TEMP
1499	 02115	1416  		TAD I	INXR
1500	 02116	0155  		AND	Z7400
1501	 02117	7112  		CLL RTR
1502	 02120	7012  		RTR
1503	 02121	1036  		TAD	FFFLAG
1504	 02122	7112  		CLL RTR
1505	 02123	7012  		RTR
1506	 02124	7410  		SKP
1507	 02125	1416  	1$:	TAD I	INXR
1508	 02126	7000  	IC,	NOP		/CDF 0  IF 12K
1509	 02127	0167  		AND	Z177	/MASK OFF GARBAGE
1510				/INPUT CHARACTER IN AC
1511	 02130	7440  		SZA
1512	 02131	1375  		TAD	(-177
1513	 02132	7450  		SNA		/IGNORE BLANK TAPE AND RUBOUTS
1514	 02133	5245  		JMP	DECGET
1515	 02134	1374  		TAD	(177-32
1516	 02135	7450  	STECO2,	SNA		/"SKP" FOR SUPERTECO
1517	 02136	5360  		JMP	5$	/IT'S A ^Z
1518	 02137	1373  		TAD	(16
1519	 02140	7450  		SNA
1520	 02141	5362  		JMP	6$	/ITS A FORM FEED
1521	 02142	1056  		TAD	CAFF	/RESTORE CHAR
1522	 02143	6211  		CDF 10
1523	 02144	3063  		DCA	MQ	/SAVE CHAR
1524	 02145	1445  		TAD I	ZZ	/PROTECT HIGH-
1525	 02146	0155  		AND	Z7400	/ORDER BITS
1526	 02147	1063  		TAD	MQ	/OF TARGET
1527	 02150	3445  		DCA I	ZZ	/STORE CHAR IN BUFFER
1528	 02151	1063  		TAD	MQ
1529	 02152	6201  		CDF 0
1530	 02153	2045  		ISZ	ZZ
1531	 02154	1161  		TAD	ZM12
1532	 02155	7650  		SNA CLA		/IF THE CHAR IS A LINE FEED,
1533	 02156	1372  		TAD	(-310	/CHECK THAT THE BUFFER IS NOT NEARLY FULL
1534	 02157	5237  		JMP	CHAA
1535	 02160	3037  	5$:	DCA	REND	/SIGNAL END OF FILE
1536	 02161	7410  		SKP
1537	 02162	7240  	6$:	STA
1538	 02163	3036  	APLF,	DCA	FFFLAG	/SET FORM FEED FLAG
1539	 02164	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 43
Cmd Y                                            FILE # 1

1540			
1541	 02165	3037  	INER,	DCA	REND	/INHIBIT FUTURE INPUTS
1542				.ERROR	15
1543			
1544	 02167	0401  	INCTLW,	401		/1021 IF 12K MACHINE
1545	 02170	6400  	INPCNT,	6400		/5000 IF 12K MACHINE
	------
	 02172	7470  
	 02173	0016  
	 02174	0145  
	 02175	7601  
	 02176	7637  
	 02177	0000 *
1546		2200  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 44
Cmd Y                                            FILE # 1

1547			
1548				.SBTTL	.	Teletype routines
1549			
1550	 02200	0000  	TYPCTV,	0		/TELETYPE STUFFER
1551				.SORT	CTLBEL,CTLTAB
1552	 02204	3035  		DCA	SCHAR	/STORE (POSSIBLY TRANSLATED) CHAR
1553	 02205	1035  	OUTCC,	TAD	SCHAR
1554	 02206	2221  		ISZ	COLCT	/BUMP COLUMN COUNTER
1555	 02207	0163  		AND	Z7740
1556	 02210	7640  		SZA CLA		/IS THE CHAR A CONTROL CHARACTER?
1557	 02211	5243  		JMP	NOCON	/NO
1558	 02212	1377  		TAD	(136
1559	 02213	4552  		PUTT		/OUTPUT "^"
1560	 02214	2221  	OUTLF2,	ISZ	COLCT
1561	 02215	1175  		TAD	Z100
1562	 02216	1035  	OUT.LF,	TAD	SCHAR
1563	 02217	4552  	OUTLF1,	PUTT
1564	 02220	5600  		JMP I	TYPCTV
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 45
.	Teletype routines                              FILE # 1

1565			
1566	 02221	0000  	COLCT,	0
1567			
1568	 02222	3221  	OUT.CR,	DCA	COLCT	/RESET CHAR COUNT
1569	 02223	5216  		JMP	OUT.LF
1570	 02224	1156  	OUT.VT,	TAD	Z4
1571	 02225	1165  	OUT.FF,	TAD	Z7770	/FORM FEED IS 8 LINE FEEDS, VERT TAB IS 4
1572	 02226	3221  		DCA	COLCT	/*** BUG
1573	 02227	1060  	ASR33,	TAD	CALF	/SIMULATE FORMFEEDS AND VERT TABS WITH LINEFEEDS
1574	 02230	5237  		JMP	OUTCOM	/*K* 8 LOCS AT ASR33 OVERLAYED BY ASR35 CODE
1575			
1576	 02231	1221  	OUT.HT,	TAD	COLCT	/COLUMN COUNTER, MOD 8
1577	 02232	0235  		AND	L7
1578	 02233	1165  		TAD	Z7770	/SIMULATE TABS WITH SPACES
1579	 02234	3221  		DCA	COLCT
1580	 02235	0007  	L7,	7		/TAKE UP SPACE SO ASR-35 ROUTINE WILL JUST FIT
1581	 02236	1157  		TAD	Z40	/USE SPACES FOR TABS
1582	 02237	4552  	OUTCOM,	PUTT		/PUT ONE OUT THE
1583	 02240	2221  		ISZ	COLCT	/WINDOW
1584	 02241	5776  		JMP I	(TPUTX	/STILL MORE INSIDE
1585	 02242	5600  		JMP I	TYPCTV
1586			
1587	 02243	1035  	NOCON,	TAD	SCHAR
1588	 02244	0175  		AND	Z100
1589	 02245	7650  	EU1,	SNA CLA		/*EU SET TO CLA IF EUFLAG < 0 (NO CASE FLAGGING)
1590	 02246	5216  		JMP	OUT.LF	/NOT ALPHANUMERIC
1591	 02247	7000  	EU2,	NOP		/*EU SET TO TAD Z40 IF EUFLAG>0 (FLAG UPPER CASE)
1592	 02250	1035  		TAD	SCHAR
1593	 02251	0157  		AND	Z40
1594	 02252	7650  		SNA CLA
1595	 02253	5216  		JMP	OUT.LF
1596	 02254	1275  		TAD	SQUO
1597	 02255	4552  		PUTT
1598	 02256	2221  		ISZ	COLCT
1599	 02257	1035  		TAD	SCHAR
1600	 02260	0176  		AND	Z137
1601	 02261	5217  		JMP	OUTLF1	/OUTPUT UPPER CASE VERSION
1602			
1603	 02262	1035  	OUT.BEL,TAD	SCHAR
1604	 02263	4552  		PUTT
1605	 02264	5205  		JMP	OUTCC
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 46
.	Teletype routines                              FILE # 1

1606			
1607				.SBTTL	.	Q-register manipulation
1608			
1609				/ROUTINE TO MANIPULATE Q-REGISTER STORAGE
1610			
1611			/*** ALLOW : TO MEAN APPEND TO Q-REGISTER
1612			/APPLIES TO X AND ^U COMMANDS
1613			/MAKE SURE CMD LINE AND ^S ZERO CLNF
1614			
1615	 02265	0000  	QADJ,	0
1616	 02266	7510  		SPA
1617	 02267	5313  		JMP	ERR12	/STRING TOO LONG FOR Q-REGISTER
1618	 02270	3063  		DCA	MQ	/SAVE NEW LENGTH OF Q-REGISTER
1619	 02271	4533  		QSUM		/COMPUTE POINTER TO CURRENT Q-REGISTER
1620	 02272	7350  		AC3777
1621	 02273	0474  		AND I	QPTR
1622	 02274	1050  		TAD	QP
1623	 02275	3047  	SQUO,	DCA	R
1624	 02276	7350  		AC3777
1625	 02277	0474  		AND I	QPTR	/GET ITS CURRENT LENGTH
1626	 02300	7141  		CIA CLL
1627	 02301	1063  		TAD	MQ	/COMPUTE DIFFERENCE
1628	 02302	7420  		SNL		/ADJUST Q-REGS
1629	 02303	5340  		JMP	QDNN	/TO HOLD NEW STRING
1630	 02304	7450  		SNA		/CHECK FOR ZERO
1631	 02305	5356  		JMP	QADJDN	/NOTHING TO DO
1632	 02306	1051  		TAD	QZ	/MOVE Q-REGISTERS UP TO INSERT CHARS
1633	 02307	3050  		DCA	QP	/(LINK IS 1 FROM PREVIOUS SNL)
1634	 02310	1050  		TAD	QP
1635	 02311	1366  		TAD	MQMAX	/SEE IF OUT OF BOUNDS
1636	 02312	7620  		SNL CLA		/TWO PLACES TO TOGGLE LINK THERE
1637				.ERROR	12	/GETTING TOO FULL
1638	 02314	1051  		TAD	QZ
1639	 02315	3046  		DCA	Q
1640	 02316	1050  		TAD	QP
1641	 02317	3051  		DCA	QZ
1642	 02320	2050  		ISZ	QP
1643	 02321	1046  	L$:	TAD	Q
1644	 02322	7041  		CIA
1645	 02323	1047  		TAD	R	/DOUBLES AS ASCII FOR '
1646	 02324	7650  		SNA CLA
1647	 02325	5356  		JMP	QADJDN
1648	 02326	7040  		CMA
1649	 02327	1046  		TAD	Q
1650	 02330	3046  		DCA	Q
1651	 02331	7344  		MTWO
1652	 02332	1050  		TAD	QP
1653	 02333	3050  		DCA	QP
1654	 02334	1046  		TAD	Q
1655	 02335	4524  		GETQ
1656	 02336	4534  		QPUT
1657	 02337	5321  		JMP	L$
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 47
.	Q-register manipulation                        FILE # 1

1658			
1659	 02340	1047  	QDNN,	TAD	R	/MOVE Q-REGS DOWN TO ABSORB CHARACTERS
1660	 02341	3050  		DCA	QP
1661	 02342	1051  	1$:	TAD	QZ
1662	 02343	7041  		CIA
1663	 02344	1047  		TAD	R	/-NUMBER OF CHARS TO MOVE
1664	 02345	7650  		SNA CLA		/DONE?
1665	 02346	5354  		JMP	2$	/YES
1666	 02347	1047  		TAD	R
1667	 02350	4524  		GETQ
1668	 02351	4534  		QPUT
1669	 02352	2047  		ISZ	R
1670	 02353	5342  		JMP	1$	/LOOP AGAIN
1671	 02354	1050  	2$:	TAD	QP	/SET NEW VALUE
1672	 02355	3051  		DCA	QZ	/OF HIGHEST CHAR
1673	 02356	7330  	QADJDN,	STL CLA RAR	/4000
1674	 02357	0474  		AND I	QPTR	/SAVE HIGH ORDER PART
1675	 02360	1063  		TAD	MQ
1676	 02361	3474  		DCA I	QPTR	/SAVE NEW LENGTH OF Q-REGISTER IN Q-REG TABLE
1677	 02362	1043  		TAD	QCMND	/SET UP COMMAND LINE AGAIN
1678	 02363	4536  		SETCMD		/AS IT MAY HAVE BEEN SHUFFLED.
1679	 02364	4533  		QSUM		/RECOMPUTE POINTER TO BEGINNING OF NEW Q-REG
1680	 02365	5665  		JMP I	QADJ
1681			
1682	 02366	4060  	MQMAX,	-QMAX
1683			
1684	 02367	0000  	QOVER,	0		/SUBROUTINE TO SKIP TO END OF STRING
1685	 02370	4530  		QCHK		/GET THE QUOTE CHARACTER (IF ANY)
1686	 02371	1040  		TAD	SCANP
1687	 02372	3041  		DCA	OSCANP	/SAVE BACKUP SCAN POINTER
1688	 02373	4535  	L$:	QUOTST
1689	 02374	5767  		JMP I	QOVER	/FOUND AN ALTM OR EQUIVALENT - RETURN
1690	 02375	5373  		JMP	L$	/NOT END - SKIP ANOTHER CHAR
1691			
1692			/COULD MOVE ABOVE TO Q-OVERLAY
	------
	 02376	0556  
	 02377	0136  
1693		2400  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 48
.	Q-register manipulation                        FILE # 1

1694			
1695				.SBTTL	.	Q-register subroutines
1696			
1697			
1698	 02400	0000  	QSUMR,	0		/COMPUTE POINTER TO Q-REG
1699	 02401	7450  		SNA
1700	 02402	1071  		TAD	QNMBR	/NORMALLY USES QNMBR, BUT CAN BE OVERRIDDEN BY AC
1701	 02403	7041  		CIA
1702	 02404	3222  		DCA	KNT$
1703	 02405	3050  		DCA	QP
1704	 02406	1377  		TAD	(QARRAY	/BASE ADDR OF Q-REG POINTERS
1705	 02407	3074  		DCA	QPTR
1706	 02410	5217  		JMP	2$
1707	 02411	7350  	L$:	AC3777
1708	 02412	0474  		AND I	QPTR	/ADD # OF CHARS IN LOWER REG
1709	 02413	1050  		TAD	QP
1710	 02414	3050  		DCA	QP
1711	 02415	2074  		ISZ	QPTR	/SKIP VALUE WORD
1712	 02416	2074  		ISZ	QPTR	/POINT TO NEXT Q-REG
1713	 02417	2222  	2$:	ISZ	KNT$	/REACHED OUR Q-REGISTER YET?
1714	 02420	5211  		JMP	L$	/NO - ADD IN ANOTHER
1715	 02421	5600  		JMP I	QSUMR
1716	 02422	0000  	KNT$:	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 49
.	Q-register subroutines                         FILE # 1

1717			
1718	 02423	0000  	SGET,	0		/SCAN COMMAND LINE OR MACRO
1719	 02424	7200  	1$:	CLA		/** CALLED WITH AC NON-ZERO **
1720	 02425	1073  		TAD	QLENGT
1721	 02426	7141  		CIA CLL
1722	 02427	1040  		TAD	SCANP
1723	 02430	7630  		SZL CLA		/CHECK THAT WE ARE STILL INSIDE THE COMMAND LINE
1724	 02431	5245  		JMP	2$	/NO - COMMAND DONE
1725	 02432	1040  		TAD	SCANP	/GET CHARACTER POSITION IN LINE
1726	 02433	1072  		TAD	QBASE	/ADD IT TO THE ADDRESS OF THE LINE
1727	 02434	4524  		GETQ		/AND GET THAT CHARACTER.
1728	 02435	3106  		DCA	LASTC
1729	 02436	1023  		TAD	TFLG
1730	 02437	0106  		AND	LASTC	/IF THE TRACE FLAG IS ON,
1731	 02440	7440  		SZA
1732	 02441	4521  		TYPE		/PRINT THE CHAR
1733	 02442	1106  		TAD	LASTC
1734	 02443	2040  		ISZ	SCANP	/INCREMENT CHARACTER POINTER AFTER FETCH
1735	 02444	5623  		JMP I	SGET	/RETURN
1736	 02445	1034  	2$:	TAD	MPDL	/"MPDL" IS THE PUSHDOWN POINTER ON ENTRY TO THIS
1737	 02446	7450  		SNA		/MACRO. IF IT IS 0, WE ARE NOT IN A MACRO
1738	 02447	5776  		JMP I	(T1	/SO RETURN TO THE USER
1739	 02450	1042  		TAD	PDLP	/CHECK THAT THE ENDING POINTER IS THE SAME
1740	 02451	7001  		IAC
1741	 02452	7640  		SZA CLA		/AS THE ENTRY ONE - OTHERWISE WE HAVE
1742				.ERROR	13	/SCREWED UP SOMEHOW (EG WE ARE
1743	 02454	4510  		POP		/ IN THE MIDDLE OF A COMMAND)
1744	 02455	3040  		DCA	SCANP
1745	 02456	4510  		POP
1746	 02457	3032  		DCA	ITRST
1747	 02460	4510  		POP		/RESTORE THE PREVIOUS VALUES OF
1748	 02461	3034  		DCA	MPDL	/MPDL, THE SCAN POINTER AND THE COMMAND LINE
1749	 02462	4510  		POP		/POINTER FROM THE PUSHDOWN LIST
1750	 02463	4536  		SETCMD
1751	 02464	5224  		JMP	1$	/AND FETCH A CHARACTER FROM THE UPPER LEVEL.
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 50
.	Q-register subroutines                         FILE # 1

1752			
1753	 02465	0000  	CMDSET,	0		/SUBROUTINE TO SET UP COMMAND LINE POINTERS
1754	 02466	3043  		DCA	QCMND	/STORE IN COMMAND LINE NUMBER
1755	 02467	1043  		TAD	QCMND
1756	 02470	4533  		QSUM
1757	 02471	1050  		TAD	QP	/GET FIRST LOCATION IN COMMAND LINE
1758	 02472	3072  		DCA	QBASE	/AND STORE IN "QBASE"
1759	 02473	7350  		AC3777
1760	 02474	0474  		AND I	QPTR
1761	 02475	3073  		DCA	QLENGT	/STORE THE LINE LENGTH IN "QLENGT"
1762	 02476	5665  		JMP I	CMDSET	/RETURN
1763			
1764	 02477	0000  	QREFER,	0		/SET UP POINTERS FOR Q-REG REFERENCE
1765	 02500	7440  		SZA
1766	 02501	5314  		JMP	2$	/AHA - WE ALREADY HAVE THE Q-REGISTER
1767	 02502	4543  		SCANUP		/GET Q-REGISTER IDENTIFIER
1768	 02503	3071  		DCA	QNMBR
1769	 02504	1071  		TAD	QNMBR
1770	 02505	4544  		TSTSEP		/TEST FOR ALPHANUMERIC (LOWER CASE LEGAL)
1771				.ERROR	03	/OOPS - BAD Q-REGISTER REFERENCE
1772	 02507	1071  		TAD	QNMBR
1773	 02510	1164  		TAD	Z7700
1774	 02511	7510  		SPA		/NUMERIC?
1775	 02512	1052  		TAD	Z7	/YES - FORCE NUMBERS UP TO ABUT LETTERS
1776	 02513	1060  		TAD	Z12	/FORCE IDENTIFIER INTO THE RANGE 1-44 (OCTAL)
1777	 02514	3071  	2$:	DCA	QNMBR	/STORE AWAY NUMBER FOR FURTHER REFERENCE
1778	 02515	4533  		QSUM		/COMPUTE QP AND QPTR
1779	 02516	5677  		JMP I	QREFER	/RETURN
1780			
1781	 02517	5775  	CHR.U,	JMP I	(CHRUU
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 51
.	Q-register subroutines                         FILE # 1

1782			
1783				.SBTTL	Cmd ^T
1784			
1785	 02520	2024  	CTL.T,	NCHK
1786	 02521	5325  		JMP	CTLT2	/NO ARG
1787	 02522	1027  		TAD	N
1788	 02523	4521  	ET1,	TYPE		/TYPE CHAR REPRESENTED BY ARGUMENT
1789	 02524	5512  		POPJ
1790	 02525	4520  	CTLT2,	LISTEN		/^T COMMAND - VALUE OF NEXT CHAR FROM TTY
1791	 02526	4521  	ET8,	TYPE		/*ET	ECHO THE CHARACTER
1792	 02527	1035  		TAD	SCHAR	/GET THE CHARACTER
1793	 02530	7100  	NNEW13,	CLL
1794	 02531	7510  		SPA
1795	 02532	7120  		STL		/EXTEND SIGN BIT TO LINK
1796	 02533	5774  		JMP I	(NCOM	/RETURN -1 IF F.F., 0 OTHERWISE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 52
Cmd ^T                                           FILE # 1

1797			
1798				.SBTTL	.	Overlay handler
1799			
1800	 02534	0000  	OVERLY,	0
1801	 02535	1734  		TAD I	OVERLY	/GET LOCATION TO CHECK
1802	 02536	2334  		ISZ	OVERLY
1803	 02537	3351  		DCA	TMP
1804	 02540	1734  		TAD I 	OVERLY
1805	 02541	3334  		DCA	OVERLY	/SET RETURN ADDRESS
1806	 02542	1751  		TAD I	TMP	/IS OUR OVERLAY IN CORE?
1807	 02543	7450  		SNA
1808	 02544	5734  		JMP I	OVERLY	/YES, BRANCH INTO IT
1809	 02545	3351  		DCA	TMP	/NO, SET BLOCK TO READ IN
1810			/**	THE NEXT 5 WORDS ARE MODIFIED IF WE HAVE MORE THAN 12K
1811	 02546	4773  	OVREAD,	JMS I	(7607	/CALL SYSTEM HANDLER
1812	 02547	0200  		0200		/READ 2 PAGES
1813	 02550	3200  		3200		/INTO 3200
1814	 02551	0000  	TMP,	0		/FROM THIS BLOCK
1815	 02552	7402  		HLT		/ERROR READING OVERLAY
1816	 02553	5734  		JMP I	OVERLY	/GO TO NEXT SPOT
1817			
1818	 02554	7240  	CATS,	STA		/@ COMMAND - FAKE OUT "IREST"
1819	 02555	3025  	IREST,	DCA	QFLG	/RESET QUOTED STRING FLAG
1820	 02556	4526  		CTCCHK		/CHECK FOR CTRLC (NOT TOO OFTEN) *WM
1821	 02557	7200  		CLA		/EXIT LEAVES AC NON-ZERO
1822	 02560	1055  		TAD	CAAM
1823	 02561	3010  		DCA	QUOTE	/RESET QUOTE CHAR TO ALTMODE
1824	 02562	5512  	POPK,	POPJ		/RETURN
1825			
1826	 02563	0000  	QTST,	0		/SUBROUTINE TO GET A CHAR AND TEST FOR ALTMODE
1827	 02564	4517  		SCAN
1828				.SORT	QUOTE,QTST	/RETURN IF QUOTE FOUND
1829	 02570	2363  		ISZ	QTST
1830	 02571	5763  		JMP I	QTST	/SKIP-RETURN WITH AC INTACT IF NOT FOUND
1831			
1832			SCHCTE,	.ERROR 39	/ILLEGAL CTRL/E
	------
	 02573	7607  
	 02574	0000 *
	 02575	4517  
	 02576	0206  
	 02577	4630  
1833		2600  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 53
.	Overlay handler                                FILE # 1

1834			
1835	 02600	0001 *	ERRXX,	ERR30+1		/ENTRY POINT ALSO SERVES AS A FLAG FOR "TQMK"
1836	 02601	6032  		KCC		/CLEARS AC
1837	 02602	6201  		CDF 0		/JUST IN CASE
1838				.OVRLAY	E,ERRYY
1839			
1840	 02606	5607  	ERRRET,	JMP I	EH4	/CONTINUE AS NORMAL UNLESS USER TYPES "?"
1841	 02607	0203  	EH4,	T0		/*EH
1842			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 54
.	Overlay handler                                FILE # 1

1843			
1844				.SBTTL	Cmd E
1845			
1846	 02610	4543  	CHR.E,	SCANUP		/GET CHARACTER AFTER E
1847	 02611	4553  		TESTA		/CHECK FOR ALPHABETIC
1848				.ERROR	19	/BAD CHARACTER AFTER E
1849	 02613	1377  		TAD	(ELIST-"A
1850	 02614	3327  		DCA	TYI
1851	 02615	1727  		TAD I	TYI	/GET ENTRY FROM DISPATCH TABLE
1852	 02616	3233  	OVBRAN,	DCA	2$	/BRANCH TO OVERLAY
1853	 02617	1233  		TAD	2$
1854	 02620	0166  		AND	Z377
1855	 02621	1376  		TAD	(3200	/BASE OF OVERLAY AREA
1856	 02622	3234  		DCA	1$	/ADDRESS
1857	 02623	1233  		TAD	2$
1858	 02624	7004  		RAL
1859	 02625	7006  		RTL
1860	 02626	7006  		RTL
1861	 02627	0052  		AND	Z7
1862	 02630	1376  		TAD	(3200
1863	 02631	3233  		DCA	2$	/KEY
1864	 02632	4550  		OVRLAY
1865	 02633	0000  	2$:	0
1866	 02634	0000  	1$:	0
1867			
1868			/FORMAT OF CALL TO OVBRAN:
1869			
1870			/	TAD	(OVERLAY CODE
1871			/	JMP	OVBRAN
1872			
1873			/OVERLAY CODE HAS THE FOLLOWING FORMAT:
1874			
1875			/BIT	MEANING
1876			/0	WILL BE IGNORED (USUALLY NEGATIVE)
1877			/1-3	OVERLAY NUMBER
1878			/4-11	RELATIVE ADDRESS WITHIN OVERLAY
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 55
Cmd E                                            FILE # 1

1879			
1880				.SBTTL	Cmd I
1881			
1882	 02635	2024  	CHR.I,	NCHK		/I COMMAND
1883	 02636	5245  		JMP	CIL1
1884	 02637	1027  		TAD	N	/INSERT CHAR WHOSE VALUE IS N
1885	 02640	4340  		JMS	UPOC
1886			/*** CHECK FOR $
1887	 02641	5512  		POPJ
1888			
1889				.SBTTL	Cmd <TAB>
1890			
1891				.SBTTL	Cmd ^I
1892			
1893	 02642	3025  	CTL.I,	DCA	QFLG	/CANNOT BE QUOTED
1894	 02643	1054  		TAD	CAHT	/TAB
1895	 02644	4340  		JMS	UPOC
1896	 02645	4531  	CIL1,	QSKP		/COUNT LENGTH OF INSERTION
1897	 02646	3064  		DCA	DVT1	/ZERO FUDGE USED BY FS COMMAND
1898	 02647	1041  	CIL2,	TAD	OSCANP
1899	 02650	1072  		TAD	QBASE
1900	 02651	3050  		DCA	QP	/SET UP POINTER TO INSERTION STRING
1901	 02652	1040  		TAD	SCANP
1902	 02653	7141  		CIA CLL
1903	 02654	1041  		TAD	OSCANP
1904	 02655	3063  		DCA	MQ	/STORE CHAR COUNT TO INSERT (-1)
1905	 02656	1063  		TAD	MQ
1906	 02657	1064  		TAD	DVT1	/ADD FS FUDGE
1907	 02660	7040  		CMA
1908	 02661	7420  		SNL		/DID WE INSERT MORE THAN WE DELETED?
1909	 02662	5324  		JMP	EXPAND	/YES - IGNORE SIGN BIT OF COUNT
1910	 02663	7041  		CIA
1911	 02664	4511  		PUSHJ
1912	 02665	0735  			ADJ2	/COMPRESS OUT EXCESS DELETED STUFF
1913	 02666	5274  		JMP	CIL4
1914	 02667	1050  	CIL3,	TAD	QP
1915	 02670	4524  		GETQ		/GET A CHAR
1916	 02671	3327  		DCA	TYI
1917	 02672	4277  		JMS	STOREC	/STORE A CHARACTER
1918	 02673	2050  		ISZ	QP
1919	 02674	2063  	CIL4,	ISZ	MQ
1920	 02675	5267  		JMP	CIL3	/OF INSERTION
1921	 02676	5366  		JMP	ZRON
1922			
1923	 02677	0000  	STOREC,	0		/STORE CHAR IN "TYI" INTO TEXT BUFFER AT P
1924	 02700	6211  		CDF 10
1925	 02701	1444  		TAD I	P
1926	 02702	0155  		AND	Z7400
1927	 02703	1327  		TAD	TYI
1928	 02704	3444  		DCA I	P
1929	 02705	6201  		CDF 0
1930	 02706	2044  		ISZ	P
1931	 02707	5677  		JMP I	STOREC
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 56
Cmd ^I                                           FILE # 1

1932			
1933				.SBTTL	Cmd G
1934			
1935	 02710	4532  	CHR.G,	QREF		/G COMMAND - GET Q-REGISTER NUMBER
1936	 02711	3024  		DCA	NFLG
1937	 02712	7350  		AC3777
1938	 02713	0474  		AND I	QPTR	/GET COUNT OF CHARS IN REGISTER
1939	 02714	7040  		CMA
1940	 02715	3063  		DCA	MQ	/SAVE AS TRANSFER COUNT
1941	 02716	2022  		ISZ	CLNF
1942	 02717	7410  		SKP
1943	 02720	5362  		JMP	COLG4
1944	 02721	3022  		DCA	CLNF
1945	 02722	7350  		AC3777
1946	 02723	0474  		AND I	QPTR
1947	 02724	4511  	EXPAND,	PUSHJ		/COME HERE FROM INSERT LOGIC
1948	 02725	0665  			ADJ	/INCREASE TEXT BUFFER SIZE ( Q-REG LENGTH MAY
1949	 02726	5274  		JMP	CIL4	/BE NEGATIVE) AND GO TRANSFER THE CHARS
1950			
1951	 02727	0000  	TYI,	0		/TELETYPE INPUT
1952	 02730	6031  	TYI1,	KSF		/*VT52 WAIT FOR THE KEYBOARD FLAG
1953	 02731	5330  	KSFWT,	JMP	.-1	/*VT52 WHILE WAITING, DISPLAY TEXT ON SCOPE
1954	 02732	4526  		CTCCHK		/*VT52 CHECK FOR ^C
1955	 02733	6036  		KRB		/*VT52 WATCH OUT - AC MAY NOT BE 0!
1956	 02734	7510  	TYIRET,	SPA
1957	 02735	5727  		JMP I	TYI	/ALLOW READ WITH NO WAIT TO RETURN -1
1958	 02736	0167  		AND	Z177	/MUST GET RID OF HIGH-ORDER BIT
1959	 02737	5727  		JMP I	TYI
1960			
1961	 02740	0000  	UPOC,	0		/MOVE TEXT BUFFER UP ONE CHAR
1962	 02741	0167  		AND	Z177
1963	 02742	3327  		DCA	TYI
1964	 02743	7201  		CLA IAC
1965	 02744	4511  		PUSHJ
1966	 02745	0665  			ADJ
1967	 02746	4277  		JMS	STOREC	/STORE CHAR IN THE HOLE WE MADE
1968	 02747	5740  		JMP I	UPOC
1969			
1970	 02750	0000  	CUPPER,	0		/FORCE CHARACTER TO UPPER CASE
1971	 02751	1164  		TAD	ZM100
1972	 02752	7500  		SMA		/IF ITS >100
1973	 02753	0176  		AND	Z137	/REDUCE IT TO BE <140
1974	 02754	1175  		TAD	Z100	/ABOVE LITERAL COULD HAVE BEEN (37
1975	 02755	5750  		JMP I	CUPPER	/RETURN
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 57
Cmd G                                            FILE # 1

1976			
1977	 02756	1050  	COLG3,	TAD	QP
1978	 02757	4524  		GETQ		/GET A CHAR
1979	 02760	4521  		TYPE
1980	 02761	2050  		ISZ	QP
1981	 02762	2063  	COLG4,	ISZ	MQ
1982	 02763	5356  		JMP	COLG3
1983	 02764	5512  		POPJ
1984			
1985	 02765	3040  	ZROSPN,	DCA	SCANP	/RESET TO BEGINNING OF ITERATION
1986	 02766	3024  	ZRON,	DCA	NFLG	/KILL NUMBER FLAG
1987	 02767	3021  		DCA	CFLG	/KILL COMMA FLAG
1988	 02770	5571  		JMP I	ZIREST
1989			
1990				.SBTTL	Imm *
1991			
1992			TSAVE,	.OVRLAY X,TSAV
1993			
	------
	 02776	3200  
	 02777	7677 *
1994		3000  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 58
Imm *                                            FILE # 1

1995			
1996	 03000	4511  	TBS,	PUSHJ
1997	 03001	0000 *			CMIN
1998	 03002	4511  	TLF,	PUSHJ
1999	 03003	0614  			CHR.L
2000	 03004	4523  		CRLF
2001	 03005	4511  		PUSHJ
2002	 03006	1654  			CHR.T
2003	 03007	5777  		JMP I	(T0A
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 59
Imm *                                            FILE # 1

2004			
2005				.SBTTL	Cmd Q
2006			
2007	 03010	4532  	CHR.Q,	QREF		/COMMAND Q
2008	 03011	7100  		CLL
2009	 03012	5215  		JMP	CQOA
2010			
2011	 03013	4532  	CPCS,	QREF		/COMMAND %
2012	 03014	4537  		GETN
2013	 03015	2074  	CQOA,	ISZ	QPTR	/POINT TO VALUE WORD
2014	 03016	1474  		TAD I	QPTR	/INCREMENT VALUE BY ARGUMENT
2015	 03017	3474  		DCA I	QPTR
2016			/ADD LINKS
2017	 03020	7240  		STA
2018	 03021	1074  		TAD	QPTR	/GO BACK ONE
2019	 03022	3233  		DCA	QPTR2	/ALSO COMPL LINK
2020	 03023	7030  		CML RAR
2021	 03024	1633  		TAD I	QPTR2
2022	 03025	3633  		DCA I	QPTR2
2023	 03026	1633  		TAD I	QPTR2
2024	 03027	7004  		RAL
2025	 03030	7200  		CLA
2026	 03031	1474  		TAD I	QPTR
2027	 03032	5776  		JMP I	(NCOM	/MAKE A NUMBER
2028			
2029			QPTR2,
2030	 03033	0000  	TYCRLF,	0		/TYPE A CR AND LF
2031	 03034	1053  		TAD	CACR	/CR
2032	 03035	4521  		TYPE
2033	 03036	1060  		TAD	CALF	/LF
2034	 03037	4521  		TYPE
2035	 03040	5633  		JMP I	TYCRLF	/RETURN
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 60
Cmd Q                                            FILE # 1

2036			
2037				.SBTTL	Cmd ,
2038			
2039	 03041	2024  	CCMA,	NCHK		/COMMAND ,
2040	 03042	5061  		JMP	NERR	/NUMBER FLAG NOT SET (COULD GIVE ?NAC HERE)
2041	 03043	1030  		TAD	NLINK
2042	 03044	7640  		SZA CLA
2043				.ERROR	26	/NEG ARGUMENT TO ,
2044	 03046	2021  		ISZ	CFLG
2045	 03047	7410  		SKP
2046	 03050	5061  		JMP	NERR	/3 NUMERIC ARGUMENTS
2047	 03051	1027  		TAD	N	/MOVE N TO M
2048	 03052	3026  	CCMA3,	DCA	M	/ENTERED HERE BY "H" COMMAND
2049	 03053	3027  		DCA	N	/AND CLEAR N
2050	 03054	7240  		STA
2051	 03055	3021  		DCA	CFLG	/SET COMMA FLAG
2052	 03056	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 61
Cmd ,                                            FILE # 1

2053			
2054				.SBTTL	.	Number routines
2055			
2056			/RETURNS 13-BIT RESULT IN AC,LINK
2057			
2058	 03057	0000  	NGET,	0		/SUBROUTINE TO GET LAST NUMBER, WITH
2059	 03060	2024  	NGET1,	NCHK		/DEFAULT VALUES OF +1 (NO NUMBER),
2060	 03061	5264  		JMP	NGET2	/OR -1 (JUST A MINUS SIGN)
2061	 03062	4551  		GETNUM
2062	 03063	5657  		JMP I	NGET	/DIGITS SEEN - RETURN THEM
2063	 03064	7301  	NGET2,	CLA CLL IAC	/NO DIGITS SEEN
2064	 03065	4511  		PUSHJ		/MAKE BELIEVE WE SAW THE DIGIT "1"
2065	 03066	0000 *			NCOM	/AND CREATE A NUMBER FROM IT (TAKING ANY
2066	 03067	5260  		JMP	NGET1	/OPERATORS INTO ACCOUNT) AND USE IT
2067			
2068	 03070	0000  	BACKUP,	0
2069	 03071	1573  		TAD I	ZQPNTR	/SEE IF ANYTHING TO ERASE
2070	 03072	7650  		SNA CLA
2071	 03073	5775  		JMP I	(T0	/NO, START ALL OVER
2072	 03074	7240  		STA
2073	 03075	1573  		TAD I	ZQPNTR	/THEN THE CHARACTER COUNT
2074	 03076	4540  		ADJQ		/REDUCE THE LENGTH OF THE COMMAND REGISTER BY 1
2075	 03077	1051  		TAD	QZ
2076	 03100	4524  		GETQ		/GET THE CHARACTER WE RUBBED OUT
2077	 03101	5670  		JMP I	BACKUP
2078			
2079	 03102	0000  	CHLCMP,	0		/COMPARISON SUBROUTINE
2080	 03103	1444  		TAD I	P	/DATA FIELD IS 10
2081	 03104	0166  		AND	Z377
2082	 03105	6201  		CDF	0
2083				.SORT	CAFF,LFTAB
2084	 03111	7710  		SPA CLA		/LINE TERMINATORS ARE CHANGED TO NEGATIVE NOS.
2085	 03112	2102  		ISZ	CDT	/IS COUNT EXHAUSTED?
2086	 03113	5326  		JMP	CHLRET	/NO
2087	 03114	2044  	CHRLI,	ISZ	P
2088	 03115	7000  		NOP
2089	 03116	6201  		CDF	0
2090	 03117	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 62
.	Number routines                                FILE # 1

2091			
2092				.SBTTL	Cmd H
2093			
2094	 03120	4511  	CHR.H,	PUSHJ		/COMMAND H
2095	 03121	3052  			CCMA3	/SET M=0 AND COMMA FLAG ON AND FALL INTO "Z"
2096						/** COULD CAUSE ERROR ON B AND H IF NFLG SET
2097				.SBTTL	Cmd Z
2098			
2099	 03122	1045  	CHR.Z,	TAD	ZZ	/COMMAND Z
2100	 03123	7410  		SKP		/SKIP OVER CTL.H *WM
2101			
2102				.SBTTL	Cmd ^H
2103			
2104	 03124	6770  	CTL.H,	6770		/^H COMMAND - TIME OF DAY - MULTI-8 *WM
2105			
2106				.SBTTL	Cmd B
2107			
2108	 03125	5774  	CHR.B,	JMP I	(NCOM14	/COMMAND B
2109			
2110	 03126	6211  	CHLRET,	CDF	10
2111	 03127	5702  		JMP I	CHLCMP
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 63
Cmd B                                            FILE # 1

2112			
2113				.SBTTL	Cmd M
2114			
2115	 03130	4532  	CHR.M,	QREF		/COMMAND M
2116	 03131	1373  		TAD	(-4	/4 ITEMS PUSHED TO
2117	 03132	4513  		PUSHL		/SAVE CURRENT MACRO STATE
2118	 03133	0043  			QCMND
2119	 03134	0034  			MPDL
2120	 03135	0032  			ITRST	/SO THE "O" COMMAND WILL WORK IN MACROS
2121	 03136	0040  			SCANP	/ZEROED BY "PUSHL"
2122	 03137	1042  		TAD	PDLP	/MUST CHECK PDL AT END OF MACRO
2123	 03140	7041  		CIA
2124	 03141	3034  		DCA	MPDL
2125	 03142	1071  		TAD	QNMBR	/Q-REGISTER TO EXECUTE
2126	 03143	4536  		SETCMD		/SET COMMAND LINE TO THIS Q-REG
2127	 03144	5512  		POPJ		/LEAVE NUMBER FLAG ALONE AND EXIT
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 64
Cmd M                                            FILE # 1

2128			
2129	 03145	1035  	TCTLU,	TAD	SCHAR
2130	 03146	4521  		TYPE		/PRINT "^U"
2131	 03147	4772  	TCTLS,	JMS I	(BACKUP
2132	 03150	1161  		TAD	ZM12	/CHECK FOR LF
2133	 03151	7640  		SZA CLA
2134	 03152	5347  		JMP	TCTLS	/LOOP UNTIL LF
2135	 03153	7001  		IAC
2136	 03154	1573  		TAD I	ZQPNTR
2137	 03155	4540  		ADJQ
2138	 03156	5771  		JMP I	(SCP.CR
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 65
Cmd M                                            FILE # 1

2139			
2140			/COULD REPLACE 4044 BY OUTESC
2141			/OUTESC,TAD (44-33-100
2142			/	JMP OUTLF2	/TO FIX ^T INPUT OF <ESC> BUG
2143			
2144	 03157	2262  	CTLTAB,	OUT.BEL	/BELL
2145	 03160	2222  		OUT.CR
2146	 03161	2231  	POUTHT,	OUT.HT
2147	 03162	4044  		4044		/$ WITH SIGN BIT ON
2148	 03163	2225  		OUT.FF
2149	 03164	2224  		OUT.VT
2150	 03165	2216  		OUT.LF
	------
	 03171	1461  
	 03172	3070  
	 03173	7774  
	 03174	2017  
	 03175	0203  
	 03176	0000 *
	 03177	0204  
2151		3200  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 66
Cmd M                                            FILE # 1

2152			
2153				.SBTTL
2154			
2155		0200  		.ASECT TEC0C
2156			
2157		3600  		*3600
2158			
2159	 03600	1065  	NORMAL,	TAD	ODEV	/CLOSE FILE
2160	 03601	6212  		CIF 10
2161	 03602	4560  		JMS I	Z200
2162	 03603	0004  		4
2163	 03604	4741  		OUNAM
2164	 03605	0000  	OCNT,	0		/NUMBER OF BLOCKS
2165	 03606	7402  		HLT
2166	 03607	1114  		TAD	ERROR	/RESET OUTPUT SUBROUTINE POINTER
2167	 03610	3122  		DCA	OUTR	/TO ERROR
2168	 03611	6212  	ECDISM,	CIF 10		/DISMISS OS/8 USR ROUTINE
2169	 03612	4560  		JMS I	Z200
2170	 03613	0011  		11		/KICK USR OUT
2171	 03614	5571  		JMP I	ZIREST
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 67
                                                 FILE # 1

2172			
2173			/	SKIP IF LETTER OR DIGIT
2174			
2175	 03615	0000  	SCHSRT,	0
2176	 03616	4553  		TESTA		/TEST FOR LETTER
2177	 03617	7410  		SKP		/NOT ALPHABETIC
2178	 03620	2215  		ISZ	SCHSRT	/YES IT'S ALPHABETIC
2179	 03621	4554  		TESTD		/TEST FOR DIGIT
2180	 03622	5615  		JMP I	SCHSRT	/NOT A DIGIT
2181	 03623	2215  		ISZ	SCHSRT	/YES, IT'S A DIGIT
2182	 03624	5615  		JMP I	SCHSRT	/RETURN
2183			
2184	 03625	0000  	RT,	0		/ROUTINE TO PACK THIRD CHAR INTO OUTPUT BUFFER
2185	 03626	7106  		CLL RTL
2186	 03627	7006  		RTL
2187	 03630	3006  		DCA	DM	/CALLED TWICE - FIRST TIME WITH CHAR IN AC,
2188	 03631	1006  		TAD	DM	/SECOND TIME WITH "DM" IN AC
2189	 03632	0155  		AND	Z7400
2190	 03633	1477  		TAD I	OPTR2
2191	 03634	3477  		DCA I	OPTR2
2192	 03635	2077  		ISZ	OPTR2
2193	 03636	5625  		JMP I	RT
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 68
                                                 FILE # 1

2194			
2195	 03637	0000  	DVIMQL,	0		/FAKE MQL DVI
2196	 03640	3064  		DCA	DVT1	/STORE DIVIDEND
2197	 03641	3063  		DCA	MQ	/INITIALIZE QUOTIENT
2198	 03642	1637  	1$:	TAD I	DVIMQL	/GET DIVISOR
2199	 03643	7041  		CIA
2200	 03644	7100  		CLL		/SET UP TO TAKE IMMEDIATE EXIT ON ZERODIVIDE
2201	 03645	1064  		TAD	DVT1	/SUBTRACT DIVISOR FROM DIVIDEND
2202	 03646	7420  		SNL		/OVERFLOWED YET?
2203	 03647	5253  		JMP	2$	/YES
2204	 03650	3064  		DCA	DVT1	/NO - STORE IT BACK
2205	 03651	2063  		ISZ	MQ	/BUMP QUOTIENT
2206	 03652	5242  		JMP	1$	/AND LOOP
2207	 03653	7200  	2$:	CLA
2208	 03654	1063  		TAD	MQ
2209	 03655	2237  		ISZ	DVIMQL	/SKIP PAST DIVISOR
2210	 03656	5637  		JMP I	DVIMQL	/RETURN WITH QUOTIENT IN AC
2211			
2212	 03657	0000  	CHKQF,	0		/CHECK FOR EXPLICIT QUOTES
2213	 03660	2025  		ISZ	QFLG	/QUOTE FLAG SET?
2214	 03661	5264  		JMP	.+3	/NO
2215	 03662	4517  		SCAN		/GET QUOTING CHAR
2216	 03663	3010  		DCA	QUOTE	/PUT INTO SEARCH TABLE
2217	 03664	3025  		DCA	QFLG	/ZAP QUOTE FLAG
2218	 03665	5657  		JMP I	CHKQF	/RETURN
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 69
                                                 FILE # 1

2219			
2220			/******************
2221			/
2222			/	THE FOLLOWING COULD MOVE TO OVERLAY
2223			/
2224			/******************
2225			
2226	 03666	0000  	SAVTRA,	0		/SAVE TRACE MODE
2227	 03667	1023  		TAD	TFLG
2228	 03670	3277  		DCA	TFGTMP
2229	 03671	3023  		DCA	TFLG
2230	 03672	5666  		JMP I	SAVTRA	/EXIT WITH TRACE OFF
2231			
2232	 03673	0000  	RESTRA,	0		/RESTORE TRACE MODE
2233	 03674	1277  		TAD	TFGTMP
2234	 03675	3023  		DCA	TFLG
2235	 03676	5673  		JMP I	RESTRA
2236	 03677	0000  	TFGTMP,	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 70
                                                 FILE # 1

2237			
2238	 03700	0000  	DECPUT,	0		/DEVICE INDEPENDENT I/O
2239	 03701	1160  		TAD	Z200	/ADD ON PARITY BIT
2240	 03702	2347  		ISZ	O3	/3RD CHAR OF 3?
2241	 03703	5341  		JMP	O2	/NO
2242	 03704	4225  		JMS	RT	/YES, SPECIAL HANDLING
2243	 03705	1006  		TAD	DM	/TEMP STORAGE
2244	 03706	4225  		JMS	RT
2245	 03707	7346  	SETO3,	MTHREE		/RESET SWITCH
2246	 03710	3347  		DCA	O3
2247	 03711	2076  		ISZ	OCRCNT	/END OF BUFFER?
2248	 03712	5700  		JMP I	DECPUT	/NO
2249	 03713	4350  		JMS	FITS	/CHECK FOR OUTPUT OVERFLOW
2250	 03714	5335  		JMP	OERR	/YUP
2251	 03715	3205  		DCA	OCNT	/NO - UPDATE OUTPUT COUNT
2252	 03716	4466  		JMS I	OUTHND	/OUTPUT THE BUFFER
2253	 03717	4400  	OUCTRL,	4400
2254	 03720	5200  	BUFOUT,	OUT
2255	 03721	0000  	OBLK,	0
2256	 03722	5335  		JMP	OERR
2257	 03723	1321  		TAD	OBLK
2258	 03724	1012  		TAD	INRSIZ	/BUMP THE OUTPUT RECORD NUMBER BY THE MAXIMUM
2259	 03725	3321  	OSETP,	DCA	OBLK	/SINCE ALL WRITES EXCEPT THE LAST ARE MAXIMAL
2260	 03726	1320  		TAD	BUFOUT	/BUFFER POINTERS
2261	 03727	3344  		DCA	OPTR1
2262	 03730	1320  		TAD	BUFOUT
2263	 03731	3077  		DCA	OPTR2
2264	 03732	1346  		TAD	OUTSIZ
2265	 03733	3076  		DCA	OCRCNT	/DOUBLEWORD COUNT (7377 IF 8K, 6777 IF 12K)
2266	 03734	5307  		JMP	SETO3	/SET BYTE COUNTER AND RETURN
2267	 03735	7200  	OERR,	CLA
2268	 03736	1114  		TAD	ERROR
2269	 03737	3122  		DCA	OUTR	/INHIBIT FUTURE OUTPUT
2270				.ERROR	14
2271	 03741	3744  	O2,	DCA I	OPTR1	/NORMAL HANDLING
2272	 03742	2344  		ISZ	OPTR1	/BUMP POINTER
2273	 03743	5700  		JMP I	DECPUT
2274	 03744	0000  	OPTR1,	0
2275	 03745	0000  	OMAXLN,	0		/SIZE OF HOLE FOR OUTPUT
2276	 03746	7377  	OUTSIZ,	7377		/6777
2277	 03747	0000  	O3,	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 71
                                                 FILE # 1

2278			
2279	 03750	0000  	FITS,	0		/SUBROUTINE TO CHECK FOR OUTPUT OVERFLOW
2280	 03751	1344  		TAD	OPTR1	/** AC MAY CONTAIN FUDGE ON INPUT **
2281	 03752	7041  		CIA
2282	 03753	1320  		TAD	BUFOUT	/COMPUTE NUMBER OF WORDS IN BUFFER
2283	 03754	0155  		AND	Z7400	/ROUND "UP" TO NEXT BUFFERLOAD
2284	 03755	7041  		CIA		/MAKE POSITIVE
2285	 03756	7130  		CLL CML RAR
2286	 03757	3317  		DCA	OUCTRL	/AND SAVE IT AS A BUFFER CONTROL WORD
2287	 03760	1317  		TAD	OUCTRL
2288	 03761	7104  		CLL RAL
2289	 03762	7106  		CLL RTL		/ISOLATE THE BLOCK COUNT OF THE CONTROL WORD
2290	 03763	7006  		RTL		/IN THE LOW ORDER PART OF THE AC
2291	 03764	7004  		RAL
2292	 03765	1205  		TAD	OCNT	/ADD IT TO THE CURRENT OUTPUT COUNT
2293	 03766	7120  		CLL CML
2294	 03767	1345  		TAD	OMAXLN	/SEE THAT WE DIDN'T OVERFLOW
2295	 03770	7460  		SNL SZA		/THE ASSIGNED OUTPUT AREA
2296	 03771	5750  		JMP I	FITS	/OOPS - WE DID - ERROR RETURN
2297	 03772	7041  		CIA
2298	 03773	1345  		TAD	OMAXLN	/SUBTRACT OFF THE LIMIT
2299	 03774	7041  		CIA		/TO ARRIVE AT THE UPDATED BLOCK COUNT
2300	 03775	2350  		ISZ	FITS
2301	 03776	5750  		JMP I	FITS	/AND SKIP RETURN
2302		4000  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 72
                                                 FILE # 1

2303			
2304		0200  		.ASECT	TECO2
2305			
2306		4400  		*4400
2307			
2308				.SBTTL
2309			
2310	 04400	0000  	STABLE,	ZBLOCK	40	/SEARCH BUFFER
2311			
2312			/MUST KEEP THIS CODE IMMEDIATELY AFTER STABLE
2313				.SBTTL	Cmd W
2314			
2315	 04440	2024  	CHR.W,	NCHK		/*VT52 W COMMAND - IF THERE WAS A NUMBER BEFORE
2316	 04441	5244  		JMP	2$	/*VT52 THE W, SET THE NUMBER OF LINES TO DISPLAY
2317	 04442	1027  		TAD	N	/*VT52 EQUAL TO THAT NUMBER.
2318	 04443	3013  		DCA	NUMLNS	/*VT52
2319						/DON'T WORRY ABOUT NEGATIVE N
2320	 04444	2047  	2$:	ISZ	R	/FAKE OUT! (MUST BE BEFORE CALL TO DISPLY)
2321	 04445	4545  		DISPLY		/IN ANY CASE, GO THROUGH ONE DISPLAY CYCLE
2322	 04446	5512  	CTLWR,	POPJ		/THEN RETURN
2323			
2324	 04447	0241  	AIDTAB,	ROCMND		/RUBOUT
2325	 04450	3145  		TCTLU		/^U		(COULD BE T2M1)
2326	 04451	0320  		TQMK		/?
2327	 04452	2771  		TSAVE		/*
2328	 04453	3002  		TLF		/LF
2329	 04454	3000  		TBS		/BS
2330	 04455	0323  		TSLASH		/SLASH
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 73
Cmd W                                            FILE # 1

2331			
2332	 04456	0000  	NXTBUF,	0
2333	 04457	7640  		SZA CLA
2334	 04460	5270  		JMP	1$	/READ-ONLY IF AC NOT 0 ON ENTRY
2335	 04461	4511  		PUSHJ
2336	 04462	1656  			CPOC	/HP
2337	 04463	3045  		DCA	ZZ	/FORCE Y TO WORK
2338	 04464	2036  		ISZ	FFFLAG	/IF WE DIDN'T SEE A FORM FEED ON INPUT
2339	 04465	5270  		JMP	1$	/DON'T OUTPUT ONE
2340	 04466	1056  		TAD	CAFF
2341	 04467	4522  		OUTPUT
2342	 04470	4511  	1$:	PUSHJ
2343	 04471	2023  			CHR.Y	/READ NEW BUFFER
2344	 04472	4526  		CTCCHK		/CHECK FOR ^C
2345	 04473	7200  		CLA		/*K* CTCCHK LEAVES AC NON-ZERO!
2346	 04474	5656  		JMP I	NXTBUF
2347			
2348	 04475	0000  	GETUSR,	0		/ROUTINE TO LOCK THE USR INTO CORE
2349	 04476	6201  		CDF 0
2350	 04477	1045  		TAD	ZZ	/IF THE TEXT BUFFER IS EMPTY AND
2351	 04500	7650  		SNA CLA		/WE HAVE 12K, SO Q-REGS ARE IN FIELD 2,
2352	 04501	7000  	NWRUSR,	NOP		/(CHANGED BY INIT CODE TO "TAD Z4" IF 12K)
2353	 04502	7132  		STL RTR		/THEN WE SHOULD NOT SAVE CORE ON A USR CALL.
2354			/	DCA I	(JSBITS	/THIS STORES A 2000 OR A 2001
2355	 04503	3775  		DCA I	M32	/"
2356	 04504	6212  		CIF 10
2357	 04505	4564  		JMS I	Z7700	/OK - NOW LOAD THE USR IN
2358	 04506	0010  		10
2359	 04507	5675  		JMP I	GETUSR
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 74
Cmd W                                            FILE # 1

2360			
2361	 04510	0177  	AIDLST,	177		/RUBOUT
2362	 04511	0025  		^"U		/^U
2363	 04512	0077  		"?		/?
2364	 04513	0052  		"*		/*
2365	 04514	0012  		12		/LF
2366	 04515	0010  		10		/BS
2367	 04516	0057  	L16K,	"/		/SLASH	(MUST BE LAST) -1 IF NO EXTENDED ERRS
2368			
2369				.SBTTL	Cmd U
2370			
2371	 04517	4532  	CHRUU,	QREF		/COMMAND U
2372	 04520	2024  		NCHK
2373				.ERROR	22	/U MUST BE PRECEDED BY A NUMBER
2374	 04522	1030  		TAD	NLINK
2375	 04523	7112  		CLL RTR
2376	 04524	3030  		DCA	NLINK
2377	 04525	7350  		AC3777
2378	 04526	0474  		AND I	QPTR
2379	 04527	1030  		TAD	NLINK
2380	 04530	3474  		DCA I	QPTR
2381	 04531	2074  		ISZ	QPTR
2382	 04532	1027  		TAD	N
2383	 04533	3474  		DCA I	QPTR
2384	 04534	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 75
Cmd U                                            FILE # 1

2385			
2386			/SKIP IF LETTER (LEAVES U.C. OF CHAR IN AC)
2387			
2388	 04535	0000  	TSTA,	0
2389	 04536	4542  		UPPERC		/MAKE LIFE EASIER FOR US
2390	 04537	1365  		TAD	M101
2391	 04540	7100  		CLL
2392	 04541	1375  		TAD	M32
2393	 04542	7420  		SNL
2394	 04543	2335  		ISZ 	TSTA
2395	 04544	1377  		TAD	(101+26.
2396	 04545	5735  		JMP I	TSTA
2397			
2398	 04546	0001  	EDFLAG,	1		/MUST BE KEPT TOGETHER
2399	 04547	0002  	EHFLAG,	2
2400	 04550	0050  	EOFLAG,	VERSN
2401	 04551	0000  	ESFLAG,	0
2402	 04552	0204  	ETFLAG,	200+4		/INITIALLY ABORT ON ERROR AND READ LOWER CASE
2403	 04553	0000  	EUFLAG,	0
2404			/EVFLAG,	0
2405			/CXFLAG,	0
2406			
2407	 04554	0007  	COMLST,	7		/^G, COMMAND LINE EDIT LIST
2408	 04555	0015  		15		/CR, INSERT CR & LF
2409	 04556	0177  		177		/RUBOUT
2410	 04557	0021  		^"Q		/XON, IGNORE *WM
2411	 04560	0023  		^"S		/XOF, IGNORE *WM
2412	 04561	0025  		^"U		/^U - RUB OUT LINE
2413	 04562	0033  		33		/ALT MODE
2414	 04563	0052  		"*		/*
2415	 04564	0040  		40		/SPACE
2416	 04565	7677  	M101,	-101
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 76
Cmd U                                            FILE # 1

2417			
2418			/SEARCH STRING MODIFIERS:
2419			
2420	 04566	0016  	SCHLST,	^"N	/^N - ANYTHING BUT
2421	 04567	0021  		^"Q	/^Q - LITERALLY
2422	 04570	0023  		^"S	/^S - ANY SEPARATOR
2423	 04571	0030  		^"X	/^X - ANYTHING
2424	 04572	0022  		^"R	/^R - LITERALLY
2425	 04573	0005  		^"E	/^E - RESERVED FOR EXTENSIONS
2426	 04574	7777  	SCHU,	-1	/^  - USE NEXT CHAR AS CONTROL CHARACTER	*ED	"^
2427					/SCHU MUST BE LAST AND MUST BE FOLLOWED BY A NEGATIVE NUMBER
2428	 04575	7746  	M32,	-32
	------
	 04577	0133  
2429		4600  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 77
Cmd U                                            FILE # 1

2430			
2431			/DISPATCH TABLE FOR COMMAND INPUT
2432			
2433	 04600	0202  	COMTAB,	TBEL		/^G
2434	 04601	0261  		TCRLF		/CR
2435	 04602	0241  	RUBY,	ROCMND		/RUBOUT
2436	 04603	0243  		T2M1		/^Q *WM
2437	 04604	0243  		T2M1		/^S *WM
2438	 04605	3145  		TCTLU		/^U
2439	 04606	0266  		TALTM		/ALTMODE
2440	 04607	1450  		TSTAR		/*
2441	 04610	1447  		TSPACE		/SPACE
2442			
2443	 04611	0000  	CHKBZ,	0		/SEE THAT B .LE. C(AC) .LE. ZZ
2444	 04612	7430  		SZL
2445	 04613	5611  		JMP I	CHKBZ	/POP
2446	 04614	7041  		CIA		/ENTERED WITH LINK SET CORRECTLY
2447	 04615	1045  		TAD	ZZ
2448	 04616	7420  		SNL		/13-BIT ARITHMETIC
2449	 04617	5611  		JMP I	CHKBZ	/C(AC)>ZZ
2450	 04620	7041  		CIA
2451	 04621	1045  		TAD	ZZ	/RESTORE ORIGINAL AC
2452	 04622	2211  		ISZ	CHKBZ
2453	 04623	5611  		JMP I	CHKBZ
2454			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 78
Cmd U                                            FILE # 1

2455			
2456	 04624	0000  	SCUPPR,	0		/SCAN AND CONVERT TO UPPER CASE
2457	 04625	4517  		SCAN
2458	 04626	4542  		UPPERC
2459	 04627	5624  		JMP I	SCUPPR	/THAT'S ALL?
2460			
2461			/Q-REGISTER STORAGE - EACH Q-REGISTER TAKES 2 WORDS.
2462			/WD 1 CONTAINS THE LENGTH OF THE CHARACTER PART OF THE REGISTER (IF ANY)
2463			/WD 2 CONTAINS THE VALUE  OF THE NUMERIC PART OF THE REGISTER (IF ANY)
2464			
2465	 04630	0000  	QARRAY,	ZBLOCK	110	/36 Q-REGISTERS * 2 WORDS/REGISTER = 72 WORDS
2466	 04740	0000  	QPNTR,	0		/FAKE Q-REGISTER FOR INPUT LINE - LENGTH ONLY.
2467			
2468	 04741	0000  	OUNAM,	ZBLOCK	4	/NAME OF OPEN OUTPUT FILE GOES HERE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 79
Cmd U                                            FILE # 1

2469			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 80
SYMBOL TABLE

AC3777	  7350			CHR.H	G 3120			C.W	G 0771			ETFLAG	G 4552			
ADJ	  0665			CHR.I	G 2635			C7600	  0454			ET1	G 2523			
ADJQ	G 4540			CHR.J	G 0600			DECGET	  2045			ET8	G 2526			
ADJ2	  0735			CHR.K	G 0726			DECPUT	G 3700			EUFLAG	G 4553			
AIDLST	  4510			CHR.L	G 0614			DISPLY	G 4545			EU1	G 2245			
AIDTAB	  4447			CHR.M	G 3130			DM	  0006			EU2	G 2247			
APLF	  2163			CHR.P	G 1600			DNN1	  0745			EXPAND	  2724			
APOP	  2021			CHR.Q	G 3010			DNN2	  0764			FFFLAG	  0036			
ASR33	G 2227			CHR.R	G 0603			DNN3	  0766			FITS	  3750			
BACKUP	  3070			CHR.T	G 1654			DRAD	X ****			FLD: 0	  0200  ASECT		
BCHAR	  1526			CHR.U	G 2517			DSPLAY	X ****			FOVRLC	G 0044			
BLSP1	G 1463			CHR.UA	G 0475			DVIMQL	  3637			FOVRLY	  3204			
BLSP2	G 1464			CHR.W	G 4440			DVT1	  0064			GETN	G 4537			
BLSP3	G 1521			CHR.X	G 1707			EBFLG	  0070			GETNUM	G 4551			
BLSP4	G 1522			CHR.Y	G 2023			ECDISM	G 3611			GETQ	G 4524			
BSP	  1401			CHR.Z	G 3122			EDFLAG	G 4546			GETQX	G 0422			
BUFIN	G 2063			CHR1	  0604			EHFLAG	G 4547			GETUSR	G 4475			
BUFOUT	  3720			CHTECO	G 0271			EH4	G 2607			IBLK	G 2064			
BUGFLG	  1400			CIL1	  2645			ELIST	X ****			IC	G 2126			
BZCHK	  4527			CIL2	G 2647			ENTRCE	G 4547			ICRCNT	G 0075			
CAAM	  0055			CIL3	  2667			EOFLAG	  4550			IN	  6200			
CACR	G 0053			CIL4	  2674			EOVRLC	G 0042			INCTLW	G 2167			
CAFF	  0056			CLNF	  0022			EOVRLY	  3202			INCTRL	  2062			
CAHT	G 0054			CLOQ	  0610			ERR	G 4514			INER	  2165			
CALF	  0060			CMDSET	  2465			ERROR	G 0114			INHND	  0067			
CATS	G 2554			CMIN	X ****			ERRRET	G 2606			INHNDL	G ****?	<----			
CCMA	G 3041			COLCT	G 2221			ERRXX	G 2600			INPCNT	G 2170			
CCMA3	  3052			COLG3	  2756			ERRYY	X ****			INRCNT	G 0100			
CDSP	X ****			COLG4	  2762			ERR01	G 0011			INRSIZ	G 0012			
CDT	  0102			COMLST	  4554			ERR02	G 0212			INXR	G 0016			
CEXP	G 1763			COMPAR	  0331			ERR03	G 2506			IOVRLC	G 0040			
CFLG	  0021			COMTAB	  4600			ERR04	G 0515			IOVRLY	  3200			
CFSI	G 1754			CPCS	G 3013			ERR05	G 0675			IREST	G 2555			
CHAA	  2037			CPCT	  1636			ERR07	G 0061			ITRCNT	  0033			
CHAR	  0031			CPOA	  1620			ERR11	G 0611			ITRST	  0032			
CHKBZ	  4611			CPOC	  1656			ERR12	G 2313			I2	G 2102			
CHKCTC	G 0453			CQOA	  3015			ERR13	G 2453			I3	  2062			
CHKCTR	G 0463			CRLF	G 4523			ERR14	G 3740			JTECO	X ****			
CHKQF	  3657			CSEM	X ****			ERR15	G 2166			J12K1	G 5324			
CHLCMP	  3102			CTCCHK	  4526			ERR17	G 1673			J12K2	G 5360			
CHLRET	  3126			CTLBEL	  0052			ERR18	G 2025			KSFWT	G 2731			
CHLTMP	  0770			CTLTAB	  3157			ERR19	G 2612			KTYPE	G 0103			
CHREY	G 2035			CTLT2	  2525			ERR22	G 4521			LASTC	G 0106			
CHRLI	  3114			CTLWR	G 4446			ERR24	G 1756			LFTAB	  2054			
CHRL1	G 0615			CTL.A	G 1762			ERR25	G 1615			LISTEN	  4520			
CHRT2	  1661			CTL.C	G 0465			ERR26	G 3045			L12K1	G 0717			
CHRUU	  4517			CTL.H	G 3124			ERR30	X ****			L12K2	G 0753			
CHRW	  1660			CTL.I	G 2642			ERR32	G 2034			L16K	G 4516			
CHR.A	G 2000			CTL.T	G 2520			ERR34	G 0464			L7	  2235			
CHR.B	G 3125			CUPPER	  2750			ERR37	G 0740			M	  0026			
CHR.C	G 0606			CWOA	  1663			ERR38	G 1737			MEMLOC	G 2000			
CHR.D	G 0650			CWOB	  1676			ERR39	G 2572			MEMSIZ	G 0105			
CHR.E	G 2610			CWOC	  1704			ESCAPE	X ****			MPDL	  0034			
CHR.G	G 2710			CWOUT	  1702			ESFLAG	  4551			MQ	  0063			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 80-1
SYMBOL TABLE

MQLDVI	G 4541			OUT.FF	  2225			QPUT	G 4534			SRT	  0245			
MQMAX	G 2366			OUT.HT	  2231			QPUTS	G 0400			STABLE	G 4400			
MTHREE	  7346			OUT.LF	  2216			QREF	G 4532			STECO1	G 2052			
MTWO	  7344			OUT.VT	  2224			QREFER	  2477			STECO2	G 2135			
M101	  4565			OVBRAN	  2616			QSKP	G 4531			STOREC	  2677			
M32	  4575			OVERLY	  2534			QSUM	  4533			ST4BTS	  0443			
N	  0027			OVREAD	G 2546			QSUMR	  2400			TALTM	  0266			
NAME	G 0003			OVRLAY	  4550			QTST	  2563			TBEL	  0202			
NCHK	G 2024			O2	  3741			QUOTE	  0010			TBS	  3000			
NCOM	X ****			O3	  3747			QUOTST	G 4535			TCINIT	X ****			
NCOM14	G 2017			P	  0044			QZ	  0051			TCRLF	  0261			
NERR	  0061			PDLBEG	X ****			Q12MAX	G 5600			TCTLS	G 3147			
NFLG	  0024			PDLEND	X ****			R	G 0047			TCTLU	  3145			
NGET	  3057			PDLP	  0042			RADIX	  0062			TECO	  1000  ASECT		
NGET1	  3060			PDL..B	  0260			REND	  0037			TECOS	G 0200			
NGET2	  3064			PDL..E	  0517			RESORT	G 5516			TECO.0	  0014  ASECT		
NLINES	  1716			PLUSND	  0733			RESTRA	  3673			TECO1	G 0201			
NLINK	  0030			POKE	G 1637			ROCMND	  0241			TECO2	  4745  ASECT		
NMT	  0020			POP	  4510			RT	  3625			TEC.16	  0200  ASECT		
NNEW13	G 2530			POPJ	G 5512			RUBY	G 4602			TEC0B	  3200  ASECT		
NOCON	  2243			POPJXX	  0470			SAVMQ	  1525			TEC0C	  4000  ASECT		
NORMAL	G 3600			POPJXY	  0472			SAVTRA	  3666			TEMPT	G 0104			
NOTRCE	G 4546			POPK	G 2562			SCAN	G 4517			TESTA	G 4553			
NOYANK	  1651			POPL	G 4513			SCANP	  0040			TESTD	G 4554			
NRET	X ****			POPXX	  0501			SCANUP	G 4543			TFGTMP	  3677			
NUMGET	  0643			POUTHT	G 3161			SCAPE	G 1527			TFLG	  0023			
NUMLNS	G 0013			PUSH	  4507			SCHAR	  0035			TLF	  3002			
NWRUSR	G 4501			PUSHJ	G 4511			SCHCTE	G 2572			TMP	  2551			
NXTBUF	  4456			PUSHJY	  0520			SCHLST	G 4566			TPUT	G 0554			
OBLK	  3721			PUSHL	G 4513			SCHSRT	G 3615			TPUTX	G 0556			
OCMDLN	G 0101			PUSHLX	  0527			SCHU	G 4574			TQMK	G 0320			
OCNT	G 3605			PUSHXX	  0507			SCOPGO	  1433			TSAV	X ****			
OCRCNT	G 0076			PUTT	G 4552			SCOPY	G 1414			TSAVE	  2771			
ODEV	  0065			Q	  0046			SCPBIT	G 7726			TSFWT	G 0566			
OERR	  3735			QADJ	  2265			SCPTAB	  1563			TSLASH	  0323			
OMAXLN	G 3745			QADJDN	  2356			SCP.BE	  1424			TSPACE	  1447			
OPTR1	  3744			QARRAY	  4630			SCP.CR	  1461			TSTA	G 4535			
OPTR2	  0077			QBASE	G 0072			SCP.FF	  1436			TSTAR	  1450			
OSCANP	  0041			QCHK	G 4530			SCP.LF	  1435			TSTD	X ****			
OSETP	G 3725			QCMND	  0043			SCP.RO	  1426			TSTSEP	G 4544			
OUCTRL	  3717			QDNN	  2340			SCP.VT	  1437			TTY10	  1430			
OUNAM	G 4741			QFLG	  0025			SCUPPR	  4624			TTY40	  1445			
OUT	  5200			QLENGT	G 0073			SERR	G 0011			TYCRLF	  3033			
OUTCC	  2205			QLIMIT	G 0367			SETCMD	  4536			TYI	G 2727			
OUTCOM	  2237			QMAX	  3720			SETO3	  3707			TYIRET	G 2734			
OUTDNE	G 0573			QMK	X ****			SETSKP	X ****			TYI1	G 2730			
OUTHND	  0066			QNMBR	  0071			SGET	  2423			TYPCTV	  2200			
OUTLF1	  2217			QOVER	  2367			SKPSET	G 4525			TYPE	G 4521			
OUTLF2	  2214			QOVRLC	G 0041			SORT	G 4515			T0	G 0203			
OUTPUT	G 4522			QOVRLY	  3201			SORTA1	G 1536			T0A	G 0204			
OUTR	G 0122			QP	  0050			SORTA2	  1556			T1	  0206			
OUTSIZ	G 3746			QPNTR	G 4740			SORTB	  1530			T2	  0244			
OUT.BE	  2262			QPTR	G 0074			SPUT	  0341			T2A	  0253			
OUT.CR	  2222			QPTR2	  3033			SQUO	  2275			T2M1	  0243			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  TUE 04-DEC-90  PAGE 80-2
SYMBOL TABLE

T6A	  0274			
UPNL	  0703			
UPOC	G 2740			
UPPERC	G 4542			
VBAR	G 0326			
VBARE	X ****			
VERSN	  0050			
VT05B	G 1442			
VT52B	G 0455			
XH	X ****			
XOVRLC	G 0043			
XOVRLY	  3203			
XR	  0017			
YANKY	  1633			
YSKP	G 2033			
ZIREST	  0171			
ZMAX	  7640			
ZM10	  0165			
ZM100	  0164			
ZM12	  0161			
ZM40	  0163			
ZM60	  0162			
ZNXTBU	  0172			
ZQPNTR	  0173			
ZRON	G 2766			
ZROSPN	G 2765			
ZZ	  0045			
Z100	  0175			
Z11	  0054			
Z12	  0060			
Z137	  0176			
Z14	  0056			
Z177	  0167			
Z200	  0160			
Z33	  0055			
Z377	  0166			
Z4	  0156			
Z40	  0157			
Z52	  0174			
Z6	  0177			
Z7	  0052			
Z7400	  0155			
Z77	  0170			
Z7700	  0164			
Z7740	  0163			
Z7770	  0165			
.ERROR	M 0000			
.OVRLA	M 0000			
.SORT	M 0000