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

PAGE	LINE	SUBTITLE

 20	 762	.	Command Execution Loop
 22	 834	.	Q-register pack and unpack
 23	 901	Cmd ^C
 23	 914	Cmd ^
 24	 922	.	Push down list routines
 26	 992	Cmd J
 26	 998	Cmd R
 26	1004	Cmd C
 27	1017	Cmd L
 28	1050	Cmd D
 29	1103	Cmd K
 31	1152	.	Scope subroutines
 33	1206	Imm ^G<space>
 33	1207	Imm ^G*
 34	1263	.	Sort and branch
 36	1305	Cmd P
 37	1357	Cmd T
 38	1389	Cmd X
 39	1432	Cmd ;
 40	1440	Cmd ^A
 41	1455	Cmd A
 42	1479	Cmd Y
 44	1591	.	Teletype routines
 46	1652	.	Q-register manipulation
 48	1742	.	Q-register subroutines
 51	1833	Cmd ^T
 52	1849	.	Overlay handler
 54	1897	Cmd E
 55	1934	Cmd I
 55	1943	Cmd <TAB>
 55	1945	Cmd ^I
 56	1988	Cmd G
 57	2046	Imm *
 59	2063	Cmd Q
 60	2096	Cmd ,
 61	2114	.	Number routines
 62	2153	Cmd H
 62	2158	Cmd Z
 62	2163	Cmd ^H
 62	2167	Cmd B
 63	2175	Cmd M
 66	2218	
 72	2379	
 72	2384	Cmd W
 74	2442	Cmd U
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-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  FRI 07-DEC-90  PAGE 2
                                                 FILE # 1

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

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

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

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

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

 263		7350  	AC3777=	CLL STA RAR
 264		7726  	SCPBIT=	7726
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 5
                                                 FILE # 1

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

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

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

 367			/39	?ICE	ILLEGAL CONTROL-E
 368			/40	?NAB	NO ARGUMENT BEFORE ^_
 369			/41	?NYI	PUSH AND POP NOT YET IMPLEMENTED
 370			/42	?NFO	ATTEMPT TO OUTPUT WITHOUT OPENING AN OUTPUT FILE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 8
                                                 FILE # 1

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

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

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

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

 526			
 527			
 528		0000  		.JSW	0
 529		0062  		.VERSION VERSN
 530			
 531		0200  		.ASECT	TECO.0
 532			
 533		0000  		*0
 534	 00000	0000  		0		/RESERVED FOR USE BY
 535	 00001	6232  		CIF 30		/  OS/78 SYMBIONT SUPPORT
 536	 00002	5001  		JMP .-1
 537	 00003	0000  	NAME,	ZBLOCK	4	/NAME BUILD BUFFER - MUST BE AT LOCATION 3 (USED TO BE 0)
 538						/SEE 'NAMEC' ROUTINE
 539						/LOCS 4,5&6 ARE NO LONGER RESERVED SO WE CAN USE OS/8 ODT
 540		0006  		DM=NAME+3
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 13
                                                 FILE # 1

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

 596	 00062	0000 *	RADIX,	DRAD	/RADIX TABLE POINTER - DRAD OR ORAD
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 14
                                                 FILE # 1

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

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

 653			
 654			
 655		4533  	QSUM=		JMS I	.;	QSUMR
	 00133	2400  
 656		4534  	QPUT==		JMS I	.;	QPUTS
	 00134	0400  
 657		4535  	QUOTST==	JMS I	.;	QTST
	 00135	2563  
 658		4536  	SETCMD=		JMS I	.;	CMDSET
	 00136	2465  
 659		4537  	GETN=		JMS I	.;	NGET
	 00137	3057  
 660		4540  	ADJQ==		JMS I	.;	QADJ
	 00140	2265  
 661		4541  	MQLDVI==	JMS I	.;	DVIMQL
	 00141	3637  
 662		4542  	UPPERC=		JMS I	.;	CUPPER
	 00142	2750  
 663		4543  	SCANUP==	JMS I	.;	SCUPPR
	 00143	4624  
 664		4544  	TSTSEP==	JMS I	.;	SCHSRT
	 00144	3615  
 665		4545  	DISPLY==	JMS I	.;	DSPLAY
	 00145	0000 *
 666		4546  	NOTRCE==	JMS I	.;	SAVTRA
	 00146	3666  
 667		4547  	ENTRCE==	JMS I	.;	RESTRA
	 00147	3673  
 668		4550  	OVRLAY=		JMS I	.;	OVERLY
	 00150	2534  
 669		4551  	GETNUM==	JMS I	.;	NUMGET	/GET 13 BIT NUMBER INTO L,AC
	 00151	0643  
 670		4552  	PUTT==		JMS I	.;	TPUT
	 00152	0554  
 671		4553  	TESTA==		JMS I	.;	TSTA
	 00153	4535  
 672		4554  	TESTD==		JMS I	.;	TSTD
	 00154	0000 *
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 17
                                                 FILE # 1

 673			
 674			
 675			/	PAGE 0 LITERALS (THAT LINKER COULDN'T SHARE)
 676			
 677	 00155	7400  	Z7400,	7400
 678	 00156	0004  	Z4,	4
 679	 00157	0040  	Z40,	40
 680	 00160	0200  	Z200,	200
 681	 00161	7766  	ZM12,	-12
 682	 00162	7720  	ZM60,	-60
 683			Z7740,
 684	 00163	7740  	ZM40,	-40
 685			Z7700,
 686	 00164	7700  	ZM100,	-100
 687			ZM10,
 688	 00165	7770  	Z7770,	-10
 689	 00166	0377  	Z377,	377
 690	 00167	0177  	Z177,	177
 691	 00170	0077  	Z77,	77
 692	 00171	2555  	ZIREST,	IREST
 693	 00172	4456  	ZNXTBUF,NXTBUF
 694	 00173	4740  	ZQPNTR,	QPNTR
 695	 00174	0052  	Z52,	"*
 696	 00175	0100  	Z100,	100
 697	 00176	0137  	Z137,	137
 698	 00177	0006  	Z6,	6
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 18
                                                 FILE # 1

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

 753			
 754			
 755	 00261	1053  	TCRLF,	TAD	CACR	/CR IN COMM LINE
 756	 00262	3031  		DCA	CHAR
 757	 00263	4341  		JMS	SPUT	/PUT INTO COMM LINE
 758	 00264	1060  		TAD	CALF	/THEN PUT IN A LF
 759	 00265	5253  		JMP	T2A	/AND GET SOME MORE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 20
                                                 FILE # 1

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

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

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

 887			
 888			
 889	 00453	0000  	CHKCTC,	0		/SUBROUTINE TO CHECK FOR ^C IN KEYBOARD
 890						/** AC MAY NOT BE 0 ON ENTRY
 891	 00454	7600  	C7600,	7600		/JUST IN CASE THERE IS NO MQ
 892	 00455	6031  	VT52B,	KSF		/*VT52
 893	 00456	5653  		JMP I	CHKCTC	/*VT52 NO CHAR IN KEYBOARD BUFFER - EXIT
 894	 00457	6034  		KRS		/*VT52
 895	 00460	0167  		AND	Z177	/KILL PARITY BIT
 896	 00461	1377  		TAD	(-3
 897	 00462	7440  		SZA		/^C?
 898	 00463	5653  	CHKCTR,	JMP I	CHKCTC	/NO - RESUME WITH NON-ZERO AC
 899				.ERROR	34	/^C, EXECUTION ABORTED
 900			
 901				.SBTTL	Cmd ^C
 902			
 903	 00465	6041  	CTL.C,	TSF
 904	 00466	5265  		JMP	CTL.C	/WAIT FOR TELETYPE TO DIE DOWN
 905	 00467	5654  		JMP I	C7600	/RETURN TO OS/8
 906			
 907			
 908	 00470	3222  	POPJXX,	DCA	GETQX	/POPJ ROUTINE
 909	 00471	4510  		POP
 910	 00472	3301  	POPJXY,	DCA	POPXX
 911	 00473	1222  		TAD	GETQX
 912	 00474	5701  		JMP I	POPXX
 913			
 914				.SBTTL	Cmd ^
 915			
 916	 00475	4510  	CHR.UA,	POP		/^ COMMAND - POP OFF RETURN ADDRESS
 917	 00476	4543  		SCANUP		/GET THE NEXT CHARACTER IN UPPER CASE
 918	 00477	0170  		AND	Z77	/MAKE IT A CONTROL CHARACTER
 919	 00500	5776  		JMP I	(T6A	/USE IT INSTEAD OF THE ^
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 24
Cmd ^                                            FILE # 1

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

 971			
 972			
 973	 00554	0000  	TPUT,	0		/TELETYPE OUTPUT
 974	 00555	3104  		DCA	TEMPT
 975	 00556	4526  	TPUTX,	CTCCHK		/CHECK FOR ^C
 976	 00557	1375  		TAD	(3-17	/INHIBIT PRINTING AS LONG AS THERE
 977	 00560	7450  		SNA		/IS A ^O IN THE KEYBOARD BUFFER.
 978	 00561	5754  		JMP I	TPUT
 979	 00562	1374  		TAD	(17-23	/CHECK FOR ^S
 980	 00563	7650  		SNA CLA
 981	 00564	5356  		JMP	TPUTX
 982	 00565	6041  		TSF		/WAIT FOR TELETYPE FLAG
 983	 00566	5365  	TSFWT,	JMP	.-1	/WHILE WAITING, DISPLAY TEXT ON SCOPE
 984	 00567	1104  		TAD	TEMPT
 985	 00570	6046  		TLS
 986	 00571	3373  		DCA	OUTDNE
 987	 00572	5754  		JMP I	TPUT
 988	 00573	0000  	OUTDNE,	0
	------
	 00574	7774  
	 00575	7764  
	 00576	0274  
	 00577	7775  
 989		0600  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 26
.	Push down list routines                        FILE # 1

 990			
 991			
 992				.SBTTL	Cmd J
 993			
 994	 00600	3024  	CHR.J,	DCA	NFLG	/COMMAND J
 995	 00601	4551  		GETNUM		/CAUSE NEG ARGUMENT TO GIVE A POP
 996	 00602	5210  		JMP	CLOQ
 997			
 998				.SBTTL	Cmd R
 999			
1000	 00603	4537  	CHR.R,	GETN		/GET LAST NUMBER, DEFAULT=(+ OR -)1
1001	 00604	7061  	CHR1,	CML CIA		/NEGATE 13-BIT NUMBER
1002	 00605	7410  		SKP
1003			
1004				.SBTTL	Cmd C
1005			
1006	 00606	4537  	CHR.C,	GETN		/GET LAST NUMBER, DEFAULT=(+ OR -)1
1007	 00607	1044  		TAD	P	/OFFSET RELATIVE TO .
1008			/
1009			/	*** LINK NOT ALWAYS SET RIGHT
1010			/
1011	 00610	4527  	CLOQ,	BZCHK		/SEE IF IN RANGE B,Z
1012				.ERROR	11	/?POP
1013	 00612	3044  		DCA	P	/IN RANGE
1014	 00613	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 27
Cmd C                                            FILE # 1

1015			
1016			
1017				.SBTTL	Cmd L
1018			
1019	 00614	4537  	CHR.L,	GETN		/GET LAST NUMBER, DEFAULT=(+ OR -)1
1020	 00615	6211  	CHRL1,	CDF 10
1021	 00616	7470  		SZL SNA
1022	 00617	5232  		JMP	2$
1023	 00620	7041  		CIA
1024	 00621	3102  		DCA	CDT
1025	 00622	1044  	L$:	TAD	P
1026	 00623	7041  		CIA
1027	 00624	1045  		TAD	ZZ
1028	 00625	7650  		SNA CLA		/IF WE ARE AT THE END OF THE BUFFER,
1029	 00626	5366  		JMP	DNN3	/RETURN
1030	 00627	4777  		JMS I	(CHLCMP	/COMPARE CHARACTER AGAINST LINE FEED
1031	 00630	2044  		ISZ	P
1032	 00631	5222  		JMP	L$	/KEEP GOING UNTIL WE GET THERE OR OVERFLOW BUFFER
1033	 00632	1376  	2$:	TAD	(-1
1034	 00633	3102  		DCA	CDT
1035	 00634	7340  	1$:	CLA CMA CLL
1036	 00635	1044  		TAD	P
1037	 00636	3044  		DCA	P	/MOVE POINTER BACKWARD 1
1038	 00637	7420  		SNL
1039	 00640	5775  		JMP I	(CHRLI	/OOPS - PAST THE BEGINNING OF THE BUFFER - RETURN
1040	 00641	4777  		JMS I	(CHLCMP	/COMPARE CHARACTER AGAINST LINE FEED
1041	 00642	5234  		JMP	1$	/NOT SATISFIED YET - KEEP LOOPING
1042			
1043	 00643	0000  	NUMGET,	0		/PUT 13-BIT NUMBER IN L,AC
1044	 00644	1030  		TAD	NLINK
1045	 00645	7110  		CLL RAR
1046	 00646	1027  		TAD	N
1047	 00647	5643  		JMP I	NUMGET
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 28
Cmd L                                            FILE # 1

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

1101			
1102			
1103				.SBTTL	Cmd K
1104			
1105	 00726	4773  	CHR.K,	JMS I	(NLINES	/CONVERT LINES TO CHARS
1106	 00727	3102  		DCA	CDT
1107	 00730	1026  		TAD	M	/SET POINTER
1108	 00731	3044  		DCA	P	/LOWER ARG
1109	 00732	1102  		TAD	CDT
1110	 00733	7450  	PLUSND,	SNA
1111	 00734	5512  		POPJ		/IGNORE 0D
1112	 00735	7100  	ADJ2,	CLL
1113	 00736	1044  		TAD	P	/MOVE DOWN N CHARACTERS
1114	 00737	4527  		BZCHK
1115				.ERROR	37	/DELETE TOO BIG
1116	 00741	3046  		DCA	Q	/N IN AC
1117	 00742	1044  		TAD	P
1118	 00743	3047  		DCA	R
1119	 00744	6211  		CDF 10
1120	 00745	1045  	DNN1,	TAD	ZZ
1121	 00746	7041  		CIA
1122	 00747	1046  		TAD	Q
1123	 00750	7650  		SNA CLA		/FINISHED?
1124	 00751	5364  		JMP	DNN2
1125	 00752	1446  		TAD I	Q	/GET A CHAR
1126	 00753	0166  	L12K2,	AND	Z377	/JMP .+5  IF 12K
1127	 00754	3370  		DCA	CHLTMP
1128	 00755	1447  		TAD I	R	/BE CAREFUL NOT TO
1129	 00756	0155  		AND	Z7400	/DESTROY THE HIGH-
1130	 00757	1370  		TAD	CHLTMP	/ORDER 4 BITS
1131		5360  	J12K2=	JMP	.
1132	 00760	3447  		DCA I	R	/AND PUT IT IN THE LOW PART OF THE TARGET WORD
1133	 00761	2046  		ISZ	Q
1134	 00762	2047  		ISZ	R
1135	 00763	5345  		JMP	DNN1
1136	 00764	1047  	DNN2,	TAD	R
1137	 00765	3045  		DCA	ZZ
1138	 00766	6201  	DNN3,	CDF	0
1139	 00767	5512  		POPJ
1140			
1141	 00770	0000  	CHLTMP,	0
1142			
1143			/GO TO ADJ TO MOVE UP TEXT
1144			/GOTO ADJ2 TO MOVE DOWN TEXT
1145			/IN EITHER CASE, AC CONTAINS NUMBER OF CHARS TO MOVE (0-4095)
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 30
Cmd K                                            FILE # 1

1146			
1147			
1148	 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  
1149		1000  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 31
Cmd K                                            FILE # 1

1150			
1151			
1152				.SBTTL	.	Scope subroutines
1153			
1154		0200  		.ASECT TEC0B
1155			
1156		1400  		*1400
1157			
1158			/CURSOR RIGHT IS $C
1159			/CURSOR UP IS $A
1160			/ERASE LINE IS $K
1161			
1162	 01400	0000  	BUGFLG,	0		/-1 MEANS MUST RETYPE LINE ON NEXT RUBOUT
1163			
1164	 01401	0000  	BSP,	0
1165	 01402	1230  		TAD	TTY10
1166	 01403	4552  		PUTT		/TYPE BS, SPACE, BS
1167	 01404	1245  		TAD	TTY40
1168	 01405	4552  		PUTT
1169	 01406	1230  		TAD	TTY10
1170	 01407	4552  		PUTT
1171	 01410	7240  		STA
1172	 01411	1777  		TAD I	(COLCT	/FIX UP COLUMN COUNTER
1173	 01412	3777  		DCA I	(COLCT
1174	 01413	5601  		JMP I	BSP
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 32
.	Scope subroutines                              FILE # 1

1175			
1176			
1177	 01414	4776  	SCOPY,	JMS I	(BACKUP	/BACK UP ONE CHAR IN CMD LINE
1178	 01415	1163  		TAD	ZM40	/LOOK AT CHAR WE BACKED OVER
1179	 01416	7500  		SMA
1180	 01417	5226  		JMP	SCP.RO	/IT'S EASY TO RUB THIS ONE OUT
1181	 01420	1157  		TAD	Z40	/RESTORE CHARACTER
1182				.SORT	CTLBEL,SCPTAB
1183	 01424	7200  	SCP.BEL,CLA
1184	 01425	4201  		JMS	BSP	/^X NEEDS TWO RUB OUTS
1185	 01426	7200  	SCP.RO,	CLA
1186	 01427	2200  		ISZ	BUGFLG	/MAYBE WE REALLY SHOULD REPRINT LINE
1187	 01430	7410  	TTY10,	SKP		/NOT NECESSARY
1188	 01431	5261  		JMP	SCP.CR	/NECESSARY (PREVIOUS VERTICAL MOTION MAY
1189						/HAVE SCROLLED OFF TOP OF SCREEN)
1190	 01432	4201  		JMS	BSP	/RUB IT OUT
1191	 01433	3200  	SCOPGO,	DCA	BUGFLG
1192	 01434	5775  		JMP I	(T2M1
1193			
1194	 01435	1052  	SCP.LF,	TAD	CTLBEL	/CURSOR UP 1
1195	 01436	1374  	SCP.FF,	TAD	(-4	/CURSOR UP 8
1196	 01437	1374  	SCP.VT,	TAD	(-4	/CURSOR UP 4
1197	 01440	3201  		DCA	BSP
1198	 01441	4773  		JMS I	(ESCAPE
1199	 01442	0101  	VT05B,	101		/CURSOR UP
1200	 01443	2201  		ISZ	BSP
1201	 01444	5241  		JMP	.-3
1202	 01445	7240  	TTY40,	STA
1203	 01446	5233  		JMP	SCOPGO
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 33
.	Scope subroutines                              FILE # 1

1204			
1205			
1206				.SBTTL	Imm ^G<space>
1207				.SBTTL	Imm ^G*
1208			
1209	 01447	1161  	TSPACE,	TAD	ZM12
1210	 01450	3326  	TSTAR,	DCA	BCHAR
1211	 01451	1031  		TAD	CHAR	/LOOK AT PREVIOUS CHARACTER
1212	 01452	1372  		TAD	(-7
1213	 01453	7640  		SZA CLA		/WAS IT ^G ?
1214	 01454	5516  		RESORT		/NO
1215	 01455	7240  		STA		/YES
1216	 01456	1573  		TAD I	ZQPNTR	/REDUCE CMD LINE BY 1 CHAR
1217	 01457	4540  		ADJQ		/I.E. GET RID OF ^G
1218	 01460	5263  		JMP	BLSP1
1219			
1220	 01461	1161  	SCP.CR,	TAD	ZM12
1221	 01462	3326  		DCA	BCHAR
1222	 01463	4523  	BLSP1,	CRLF		/TAD	CACR
1223	 01464	7000  	BLSP2,	NOP		/TYPE
1224	 01465	1063  		TAD	MQ
1225	 01466	3325  		DCA	SAVMQ
1226	 01467	3063  		DCA	MQ
1227	 01470	1051  		TAD	QZ	/START FROM END OF COMMAND LINE
1228	 01471	3050  	L$:	DCA	QP	/AND SEARCH FOR LF
1229	 01472	7240  		STA
1230	 01473	1063  		TAD	MQ	/COUNT HOW MANY
1231	 01474	3063  		DCA	MQ
1232	 01475	1072  		TAD	QBASE
1233	 01476	7040  		CMA
1234	 01477	1050  		TAD	QP
1235	 01500	7510  		SPA
1236	 01501	5312  		JMP	2$
1237	 01502	1072  		TAD	QBASE
1238	 01503	4524  		GETQ
1239	 01504	1326  		TAD	BCHAR	/LOOK FOR LF
1240	 01505	7650  		SNA CLA		/IS IT LF?
1241	 01506	5315  		JMP	3$	/YES
1242	 01507	7240  		STA		/NO
1243	 01510	1050  		TAD	QP	/BUMP BACK ONE MORE CHAR
1244	 01511	5271  		JMP	L$
1245			
1246	 01512	7200  	2$:	CLA
1247	 01513	1174  		TAD	Z52	/PRINT ANOTHER *
1248	 01514	4521  		TYPE
1249	 01515	4511  	3$:	PUSHJ
1250	 01516	2762  			COLG4	/REPRINT LINE TO END OF CMD LINE
1251	 01517	1325  		TAD	SAVMQ	/RESTORE MQ
1252	 01520	3063  		DCA	MQ
1253	 01521	7000  	BLSP3,	NOP		/JMS I	SCAPE
1254	 01522	7000  	BLSP4,	NOP		/113
1255	 01523	6032  		KCC
1256	 01524	5775  		JMP I	(T2M1
1257			
1258	 01525	0000  	SAVMQ,	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 33-1
Imm ^G*                                          FILE # 1

1259	 01526	7766  	BCHAR,	-12		/CHAR WE'RE SEARCHING BACKWARDS FOR
1260	 01527	0000 *	SCAPE,	ESCAPE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 34
Imm ^G*                                          FILE # 1

1261			
1262			
1263				.SBTTL	.	Sort and branch
1264			
1265	 01530	0000  	SORTB,	0		/SORT AND BRANCH ROUTINE
1266	 01531	3035  		DCA	SCHAR	/SAVE SORT CHAR
1267	 01532	7240  		STA
1268	 01533	1730  		TAD I	SORTB	/GET POINTER TO LIST
1269	 01534	2330  		ISZ	SORTB
1270	 01535	3017  		DCA	XR
1271	 01536	1417  	SORTA1,	TAD I	XR	/GET ITEM IN TEST LIST
1272	 01537	7510  		SPA		/END MARKED BY NEG VALUE
1273	 01540	5356  		JMP	SORTA2	/FELL OUT BOTTOM
1274	 01541	7161  		CIA STL
1275	 01542	1035  		TAD	SCHAR
1276	 01543	7640  		SZA CLA		/COMPARE SORT CHAR
1277	 01544	5336  		JMP	SORTA1	/NOT IT.
1278	 01545	1017  		TAD	XR	/GOT IT. NOW MAKE INDEX
1279	 01546	1730  		TAD I	SORTB	/TO JUMP TABLE
1280	 01547	3362  		DCA	COUNT$	/THIS IS TABLE POINTER
1281	 01550	1762  		TAD I	COUNT$	/GET JUMP ADDRESS FROM TABLE
1282	 01551	7510  		SPA		/IF IT IS NEGATIVE,
1283	 01552	5360  		JMP	3$	/IT'S NOT A JUMP ADDRESS - IT'S A VALUE
1284	 01553	3362  		DCA	COUNT$
1285	 01554	7300  		CLA CLL
1286	 01555	5762  		JMP I	COUNT$
1287	 01556	7300  	SORTA2:	CLA CLL		/FELL OUT BOTTOM
1288	 01557	1035  		TAD	SCHAR	/CARRY CHARACTER BACK TO
1289	 01560	2330  	3$:	ISZ	SORTB
1290	 01561	5730  		JMP I	SORTB	/DO SOMETHING ELSE
1291			
1292	 01562	0000  	COUNT$:	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 35
.	Sort and branch                                FILE # 1

1293			
1294			
1295	 01563	1424  	SCPTAB,	SCP.BEL		/BELL
1296	 01564	1461  		SCP.CR		/CR
1297	 01565	1461  		SCP.CR		/TAB
1298	 01566	1426  		SCP.RO		/ALT
1299	 01567	1436  		SCP.FF		/FF
1300	 01570	1437  		SCP.VT		/VT
1301	 01571	1435  		SCP.LF		/LF
	------
	 01572	7771  
	 01573	0000 *
	 01574	7774  
	 01575	0243  
	 01576	3070  
	 01577	2221  
1302		1600  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 36
.	Sort and branch                                FILE # 1

1303			
1304			
1305				.SBTTL	Cmd P
1306			
1307	 01600	4237  	CHR.P,	JMS	POKE	/LOOK AHEAD ONE CHARACTER
1308	 01601	4542  		UPPERC		/BUT IN UPPERCASE
1309	 01602	1377  		TAD	(-"W	/SEE IF IT'S "W"
1310	 01603	3104  		DCA	TEMPT	/SAVE KNOWLEDGE AS FLAG
1311	 01604	1104  		TAD	TEMPT
1312	 01605	7650  		SNA CLA
1313	 01606	4517  		SCAN		/PASS UP W
1314	 01607	7200  		CLA		/CLEAR W FROM AC
1315	 01610	1021  		TAD	CFLG
1316	 01611	7710  		SPA CLA		/IS THIS COMMAND  M,NP?
1317	 01612	5260  		JMP	CHRW	/YES - TREAT LIKE M,NPW
1318	 01613	4537  		GETN		/COMMAND P - GET # OF PAGES
1319	 01614	7470  		SZL SNA
1320				.ERROR	25	/NEG OR 0 ARG TO P
1321	 01616	7041  		CIA
1322	 01617	3236  		DCA	CPCT
1323	 01620	4511  	CPOA,	PUSHJ
1324	 01621	1656  			CPOC	/DO N<HPY>
1325	 01622	1104  		TAD	TEMPT	/IS NEXT CHARACTER W?
1326	 01623	7650  		SNA CLA
1327	 01624	5251  		JMP	NOYANK	/YES
1328			/	TAD	REND	/IF WANT P TO CREATE FF'S
1329			/	SZA CLA		/WHEN NO MORE INPUT FILE
1330	 01625	2036  		ISZ	FFFLAG	/NO, SAW FF?
1331	 01626	5231  		JMP	2$	/NO
1332	 01627	1056  		TAD	CAFF	/YES
1333	 01630	4522  		OUTPUT		/OUTPUT FF
1334	 01631	4511  	2$:	PUSHJ
1335	 01632	2035  			CHREY	/WHOEVER THOUGHT OF THE PW COMMAND SHOULD BE SHOT
1336	 01633	2236  	YANKY,	ISZ	CPCT
1337	 01634	5220  		JMP	CPOA
1338	 01635	5512  		POPJ
1339	 01636	0000  	CPCT,	0
1340			
1341	 01637	0000  	POKE,	0		/RETURN NEXT CHARACTER (BY LOOKING AHEAD)
1342	 01640	1073  		TAD	QLENGT
1343	 01641	7141  		CIA CLL
1344	 01642	1040  		TAD	SCANP
1345	 01643	7630  		SZL CLA		/MAKE SURE WE HAVEN'T RUN OFF END OF COMMAND LINE
1346	 01644	5637  		JMP I	POKE	/RETURN 0 IF NO CHAR
1347	 01645	1040  		TAD	SCANP
1348	 01646	1072  		TAD	QBASE
1349	 01647	4524  		GETQ
1350	 01650	5637  		JMP I	POKE	/LEAVE CHAR IN AC
1351			
1352	 01651	1056  	NOYANK,	TAD	CAFF	/NPW OUTPUTS FFS
1353	 01652	4522  		OUTPUT
1354	 01653	5233  		JMP	YANKY
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 37
Cmd P                                            FILE # 1

1355			
1356			
1357				.SBTTL	Cmd T
1358			
1359	 01654	1103  	CHR.T,	TAD	KTYPE
1360	 01655	5261  		JMP	CHRT2
1361			
1362	 01656	4511  	CPOC,	PUSHJ
1363	 01657	3120  			CHR.H
1364	 01660	1376  	CHRW,	TAD	(OUTPUT
1365	 01661	3302  	CHRT2,	DCA	CWOUT	/P AND T COMMANDS - SAME THING, DIFFERENT DEVICES
1366	 01662	4316  		JMS	NLINES	/CONVERT LINES TO CHARS
1367	 01663	7040  	CWOA,	CMA
1368	 01664	3316  		DCA	NLINES	/SET CHARACTER COUNT
1369	 01665	1316  		TAD	NLINES
1370	 01666	7041  		CIA
1371	 01667	4541  		MQLDVI		/COMPUTE HOW MANY WORDS THIS OUTPUT WILL USE
1372	 01670	0006  		6		/(BY TAKING 2/3 OF THE NUMBER OF CHARACTERS,
1373	 01671	7126  		CLL CML RTL	/ BUT THAT'S SLOW SO WE TAKE 4/6 AND ROUND)
1374	 01672	4775  		JMS I	(FITS	/DETERMINE WHETHER THE OUTPUT WILL FIT
1375				.ERROR	17	/NO - TELL THE USER
1376	 01674	7200  		CLA		/CLEAR CRAP FROM AC
1377	 01675	5304  		JMP	CWOC
1378	 01676	6211  	CWOB,	CDF 10
1379	 01677	1426  		TAD I	M
1380	 01700	0167  		AND	Z177
1381	 01701	6201  		CDF 0
1382	 01702	0000  	CWOUT,	0		/TYPE, OUTPUT, OR QPUT
1383	 01703	2026  		ISZ	M
1384	 01704	2316  	CWOC,	ISZ	NLINES	/DONE?
1385	 01705	5276  		JMP	CWOB	/NO
1386	 01706	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 38
Cmd T                                            FILE # 1

1387			
1388			
1389				.SBTTL	Cmd X
1390			
1391	 01707	4532  	CHR.X,	QREF		/COMMAND X
1392	 01710	4316  		JMS	NLINES	/CONVERT LINES TO CHARS
1393	 01711	4540  		ADJQ		/ADJUST Q-REGISTERS AND SET UP NEW LENGTH.
1394	 01712	1374  		TAD	(QPUT
1395	 01713	3302  		DCA	CWOUT	/SET OUTPUT ROUTINE TO STORE INTO Q REG
1396	 01714	1063  		TAD	MQ	/LOAD THE CHARACTER COUNT
1397	 01715	5263  		JMP	CWOA	/GO TO TEXT OUTPUTTER
1398			
1399	 01716	0000  	NLINES,	0		/CONVERT + OR - N LINES AROUND . TO CHARS M,N
1400	 01717	2021  		ISZ	CFLG	/WAS THERE A COMMA?
1401	 01720	7410  		SKP		/NO
1402	 01721	5333  		JMP	1$	/YES - DON'T CONVERT LINES TO CHARS
1403	 01722	1044  		TAD	P
1404	 01723	3026  		DCA	M
1405	 01724	3021  		DCA	CFLG	/V3C
1406	 01725	4511  		PUSHJ		/CHR.L DOES A "GETN"
1407	 01726	0614  			CHR.L	/TO GET THE DEFAULT VALUES OF N
1408	 01727	1044  		TAD	P
1409	 01730	3027  		DCA	N
1410	 01731	1026  		TAD	M
1411	 01732	3044  		DCA	P
1412	 01733	3024  	1$:	DCA	NFLG	/CLEAR NFLG IN CASE COMMA FLAG WAS ON
1413	 01734	7100  		CLL		/M AND N ARE KNOWN TO BE 12-BITS LONG
1414						/AND POSITIVE
1415	 01735	1027  		TAD	N
1416	 01736	4527  		BZCHK		/IS N OK?
1417				.ERROR	38	/?POP REFERENCE OFF PAGE
1418	 01740	7140  		CMA CLL		/YES - COMPUTE N-M
1419	 01741	1026  		TAD	M	/BY COMPUTING M-N-1
1420	 01742	7040  		CMA		/AND COMPLEMENTING IT
1421	 01743	7420  		SNL		/IS M>N?
1422	 01744	5716  		JMP I	NLINES	/NO - RETURN N-M
1423	 01745	1026  		TAD	M	/N-M+M=N NOW IN AC.
1424	 01746	3236  		DCA	CPCT	/INTERCHANGE M AND N
1425	 01747	1026  		TAD	M
1426	 01750	3027  		DCA	N
1427	 01751	1236  		TAD	CPCT
1428	 01752	3026  		DCA	M
1429	 01753	5333  		JMP	1$
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 39
Cmd X                                            FILE # 1

1430			
1431			
1432				.SBTTL	Cmd ;
1433			
1434	 01754	1032  	CFSI,	TAD	ITRST
1435	 01755	7650  		SNA CLA
1436				.ERROR	24	/FAILING SEARCH NOT IN ITERATION
1437				.OVRLAY	Q,CSEM
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 40
Cmd ;                                            FILE # 1

1438			
1439			
1440				.SBTTL	Cmd ^A
1441			
1442	 01762	1103  	CTL.A,	TAD	KTYPE
1443	 01763	3372  	CEXP,	DCA	TO$
1444	 01764	1031  		TAD	CHAR
1445	 01765	3010  		DCA	QUOTE	/TERMINATING CHAR SAME AS COMMAND CHAR
1446	 01766	4530  		QCHK		/ALLOW @ ON ^A OR !
1447	 01767	3024  		DCA	NFLG	/KILL NUMBER IF PRESENT
1448	 01770	4535  	L$:	QUOTST
1449	 01771	5571  		JMP I	ZIREST
1450	 01772	0000  	TO$:	0		/TYPE OR IGNORE THE CHARACTER
1451	 01773	5370  		JMP	L$	/* TECHNICALLY WE CAN CALL QUOTST WITH NON-ZERO AC
	------
	 01774	4534  
	 01775	3750  
	 01776	4522  
	 01777	7651  
1452		2000  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 41
Cmd ^A                                           FILE # 1

1453			
1454			
1455				.SBTTL	Cmd A
1456			
1457	 02000	2024  	CHR.A,	NCHK		/COMMAND A
1458	 02001	5237  		JMP	CHAA
1459	 02002	4551  		GETNUM
1460	 02003	1044  		TAD	P
1461	 02004	3047  		DCA	R
1462	 02005	1047  		TAD	R
1463	 02006	7420  		SNL		/MAKE SURE CATCH -1
1464	 02007	7001  		IAC
1465	 02010	4527  		BZCHK
1466	 02011	5221  		JMP	APOP
1467	 02012	7200  		CLA
1468	 02013	6211  		CDF 10
1469	 02014	1447  		TAD I	R
1470	 02015	6201  		CDF	0
1471	 02016	0166  		AND	Z377
1472	 02017	7100  	NCOM14,	CLL
1473	 02020	5777  		JMP I	(NCOM
1474			
1475	 02021	7360  	APOP,	STL STA
1476	 02022	5777  		JMP I	(NCOM	/RETURN -1 IF POINTER REFERENCE OFF PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 42
Cmd A                                            FILE # 1

1477			
1478			
1479				.SBTTL	Cmd Y
1480			
1481	 02023	2024  	CHR.Y,	NCHK
1482	 02024	7610  		SKP CLA
1483				.ERROR	18	/NUMERIC ARGUMENT TO Y
1484	 02026	1122  		TAD	OUTR
1485	 02027	7041  		CIA
1486	 02030	1114  		TAD	ERROR
1487	 02031	7640  		SZA CLA
1488	 02032	1045  		TAD	ZZ
1489	 02033	7640  	YSKP,	SZA CLA		/*ED CHANGED TO SKP CLA TO NEVER ABORT Y COMMAND
1490				.ERROR	32	/Y COMMAND ABORTED
1491	 02035	3045  	CHREY,	DCA	ZZ
1492	 02036	3044  		DCA	P	/WIPE OUT THE BUFFER
1493	 02037	1376  	CHAA,	TAD	(ZMAX-1
1494	 02040	0037  		AND	REND
1495	 02041	7141  		CIA CLL
1496	 02042	1045  		TAD	ZZ	/IF WE HAVE ALREADY SEEN THE INPUT EOF,
1497	 02043	7630  		SZL CLA		/OR IF WE'RE ALREADY FULL (OR NEARLY SO)
1498	 02044	5363  		JMP	APLF	/GET OUT
1499	 02045	2075  	DECGET,	ISZ	ICRCNT
1500	 02046	5302  		JMP	I2	/NO NEED TO READ
1501	 02047	7100  		CLL
1502	 02050	1012  		TAD	INRSIZ
1503	 02051	1100  		TAD	INRCNT
1504	 02052	7420  	STECO1,	SNL		/"SKP!CLA" FOR SUPERTECO
1505	 02053	3100  		DCA	INRCNT	/UPDATE RECORD COUNT
1506	 02054	7172  	LFTAB,	CLL CML CMA RTR	/IF WE OVERFLOWED THE END OF THE FILE,	!
1507	 02055	7012  		RTR		/5 ENTRY TABLE: MUST BE - - - + +	!
1508	 02056	7012  		RTR		/SHORTEN THE READ BY THE CORRECT AMOUNT	!
1509	 02057	1367  		TAD	INCTLW	/					!
1510	 02060	3262  		DCA	INCTRL	/SO THAT WE WILL NOT READ TOO FAR	!
1511	 02061	4467  		JMS I	INHND
1512			I3,
1513	 02062	0400  	INCTRL,	0400
1514	 02063	6200  	BUFIN,	IN		/6200 IF 8K, 5600 IF 12K
1515	 02064	0000  	IBLK,	0
1516	 02065	7700  		SMA CLA
1517	 02066	7410  		SKP
1518	 02067	5365  		JMP	INER	/IGNORE END-OF-FILE ERRORS, WE'LL SEE THE ^Z.
1519	 02070	1264  		TAD	IBLK
1520	 02071	1012  		TAD	INRSIZ	/BUMP RECORD NUMBER BY THE MAXIMUM NUMBER
1521	 02072	3264  		DCA	IBLK	/(IF WE READ SHORT ITS THE LAST ONE ANYWAY)
1522	 02073	7240  		CLA CMA
1523	 02074	1263  		TAD	BUFIN
1524	 02075	3016  		DCA	INXR	/SET UP INPUT XR
1525	 02076	1370  		TAD	INPCNT
1526	 02077	3075  		DCA	ICRCNT
1527	 02100	7346  		MTHREE
1528	 02101	3262  		DCA	I3
1529	 02102	7000  	I2,	NOP		/CDF 20 IF 12K
1530	 02103	2262  		ISZ	I3
1531	 02104	5325  		JMP	1$	/NORMAL CHARACTER
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 42-1
Cmd Y                                            FILE # 1

1532	 02105	7346  		MTHREE		/WEIRD CHARACTER-RESET SWITCH
1533	 02106	3262  		DCA	I3
1534	 02107	7344  		MTWO
1535	 02110	1016  		TAD	INXR
1536	 02111	3016  		DCA	INXR	/MOVE INPUT XR BACK TO BEGINNING OF DBLWORD
1537	 02112	1416  		TAD I	INXR
1538	 02113	0155  		AND	Z7400
1539	 02114	3036  		DCA	FFFLAG	/TEMP
1540	 02115	1416  		TAD I	INXR
1541	 02116	0155  		AND	Z7400
1542	 02117	7112  		CLL RTR
1543	 02120	7012  		RTR
1544	 02121	1036  		TAD	FFFLAG
1545	 02122	7112  		CLL RTR
1546	 02123	7012  		RTR
1547	 02124	7410  		SKP
1548	 02125	1416  	1$:	TAD I	INXR
1549	 02126	7000  	IC,	NOP		/CDF 0  IF 12K
1550	 02127	0167  		AND	Z177	/MASK OFF GARBAGE
1551				/INPUT CHARACTER IN AC
1552	 02130	7440  		SZA
1553	 02131	1375  		TAD	(-177
1554	 02132	7450  		SNA		/IGNORE BLANK TAPE AND RUBOUTS
1555	 02133	5245  		JMP	DECGET
1556	 02134	1374  		TAD	(177-32
1557	 02135	7450  	STECO2,	SNA		/"SKP" FOR SUPERTECO
1558	 02136	5360  		JMP	5$	/IT'S A ^Z
1559	 02137	1373  		TAD	(16
1560	 02140	7450  		SNA
1561	 02141	5362  		JMP	6$	/ITS A FORM FEED
1562	 02142	1056  		TAD	CAFF	/RESTORE CHAR
1563	 02143	6211  		CDF 10
1564	 02144	3063  		DCA	MQ	/SAVE CHAR
1565	 02145	1445  		TAD I	ZZ	/PROTECT HIGH-
1566	 02146	0155  		AND	Z7400	/ORDER BITS
1567	 02147	1063  		TAD	MQ	/OF TARGET
1568	 02150	3445  		DCA I	ZZ	/STORE CHAR IN BUFFER
1569	 02151	1063  		TAD	MQ
1570	 02152	6201  		CDF 0
1571	 02153	2045  		ISZ	ZZ
1572	 02154	1161  		TAD	ZM12
1573	 02155	7650  		SNA CLA		/IF THE CHAR IS A LINE FEED,
1574	 02156	1372  		TAD	(-310	/CHECK THAT THE BUFFER IS NOT NEARLY FULL
1575	 02157	5237  		JMP	CHAA
1576	 02160	3037  	5$:	DCA	REND	/SIGNAL END OF FILE
1577	 02161	7410  		SKP
1578	 02162	7240  	6$:	STA
1579	 02163	3036  	APLF,	DCA	FFFLAG	/SET FORM FEED FLAG
1580	 02164	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 43
Cmd Y                                            FILE # 1

1581			
1582			
1583	 02165	3037  	INER,	DCA	REND	/INHIBIT FUTURE INPUTS
1584				.ERROR	15
1585			
1586	 02167	0401  	INCTLW,	401		/1021 IF 12K MACHINE
1587	 02170	6400  	INPCNT,	6400		/5000 IF 12K MACHINE
	------
	 02172	7470  
	 02173	0016  
	 02174	0145  
	 02175	7601  
	 02176	7637  
	 02177	0000 *
1588		2200  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 44
Cmd Y                                            FILE # 1

1589			
1590			
1591				.SBTTL	.	Teletype routines
1592			
1593	 02200	0000  	TYPCTV,	0		/TELETYPE STUFFER
1594				.SORT	CTLBEL,CTLTAB
1595	 02204	3035  		DCA	SCHAR	/STORE (POSSIBLY TRANSLATED) CHAR
1596	 02205	1035  	OUTCC,	TAD	SCHAR
1597	 02206	2221  		ISZ	COLCT	/BUMP COLUMN COUNTER
1598	 02207	0163  		AND	Z7740
1599	 02210	7640  		SZA CLA		/IS THE CHAR A CONTROL CHARACTER?
1600	 02211	5243  		JMP	NOCON	/NO
1601	 02212	1377  		TAD	(136
1602	 02213	4552  		PUTT		/OUTPUT "^"
1603	 02214	2221  	OUTLF2,	ISZ	COLCT
1604	 02215	1175  		TAD	Z100
1605	 02216	1035  	OUT.LF,	TAD	SCHAR
1606	 02217	4552  	OUTLF1,	PUTT
1607	 02220	5600  		JMP I	TYPCTV
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 45
.	Teletype routines                              FILE # 1

1608			
1609			
1610	 02221	0000  	COLCT,	0
1611			
1612	 02222	3221  	OUT.CR,	DCA	COLCT	/RESET CHAR COUNT
1613	 02223	5216  		JMP	OUT.LF
1614	 02224	1156  	OUT.VT,	TAD	Z4
1615	 02225	1165  	OUT.FF,	TAD	Z7770	/FORM FEED IS 8 LINE FEEDS, VERT TAB IS 4
1616	 02226	3221  		DCA	COLCT	/*** BUG
1617	 02227	1060  	ASR33,	TAD	CALF	/SIMULATE FORMFEEDS AND VERT TABS WITH LINEFEEDS
1618	 02230	5237  		JMP	OUTCOM	/*K* 8 LOCS AT ASR33 OVERLAYED BY ASR35 CODE
1619			
1620	 02231	1221  	OUT.HT,	TAD	COLCT	/COLUMN COUNTER, MOD 8
1621	 02232	0235  		AND	L7
1622	 02233	1165  		TAD	Z7770	/SIMULATE TABS WITH SPACES
1623	 02234	3221  		DCA	COLCT
1624	 02235	0007  	L7,	7		/TAKE UP SPACE SO ASR-35 ROUTINE WILL JUST FIT
1625	 02236	1157  		TAD	Z40	/USE SPACES FOR TABS
1626	 02237	4552  	OUTCOM,	PUTT		/PUT ONE OUT THE
1627	 02240	2221  		ISZ	COLCT	/WINDOW
1628	 02241	5776  		JMP I	(TPUTX	/STILL MORE INSIDE
1629	 02242	5600  		JMP I	TYPCTV
1630			
1631	 02243	1035  	NOCON,	TAD	SCHAR
1632	 02244	0175  		AND	Z100
1633	 02245	7650  	EU1,	SNA CLA		/*EU SET TO CLA IF EUFLAG < 0 (NO CASE FLAGGING)
1634	 02246	5216  		JMP	OUT.LF	/NOT ALPHANUMERIC
1635	 02247	7000  	EU2,	NOP		/*EU SET TO TAD Z40 IF EUFLAG>0 (FLAG UPPER CASE)
1636	 02250	1035  		TAD	SCHAR
1637	 02251	0157  		AND	Z40
1638	 02252	7650  		SNA CLA
1639	 02253	5216  		JMP	OUT.LF
1640	 02254	1275  		TAD	SQUO
1641	 02255	4552  		PUTT
1642	 02256	2221  		ISZ	COLCT
1643	 02257	1035  		TAD	SCHAR
1644	 02260	0176  		AND	Z137
1645	 02261	5217  		JMP	OUTLF1	/OUTPUT UPPER CASE VERSION
1646			
1647	 02262	1035  	OUT.BEL,TAD	SCHAR
1648	 02263	4552  		PUTT
1649	 02264	5205  		JMP	OUTCC
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 46
.	Teletype routines                              FILE # 1

1650			
1651			
1652				.SBTTL	.	Q-register manipulation
1653			
1654				/ROUTINE TO MANIPULATE Q-REGISTER STORAGE
1655			
1656			/*** ALLOW : TO MEAN APPEND TO Q-REGISTER
1657			/APPLIES TO X AND ^U COMMANDS
1658			/MAKE SURE CMD LINE AND ^S ZERO CLNF
1659			
1660	 02265	0000  	QADJ,	0
1661	 02266	7510  		SPA
1662	 02267	5313  		JMP	ERR12	/STRING TOO LONG FOR Q-REGISTER
1663	 02270	3063  		DCA	MQ	/SAVE NEW LENGTH OF Q-REGISTER
1664	 02271	4533  		QSUM		/COMPUTE POINTER TO CURRENT Q-REGISTER
1665	 02272	7350  		AC3777
1666	 02273	0474  		AND I	QPTR
1667	 02274	1050  		TAD	QP
1668	 02275	3047  	SQUO,	DCA	R
1669	 02276	7350  		AC3777
1670	 02277	0474  		AND I	QPTR	/GET ITS CURRENT LENGTH
1671	 02300	7141  		CIA CLL
1672	 02301	1063  		TAD	MQ	/COMPUTE DIFFERENCE
1673	 02302	7420  		SNL		/ADJUST Q-REGS
1674	 02303	5340  		JMP	QDNN	/TO HOLD NEW STRING
1675	 02304	7450  		SNA		/CHECK FOR ZERO
1676	 02305	5356  		JMP	QADJDN	/NOTHING TO DO
1677	 02306	1051  		TAD	QZ	/MOVE Q-REGISTERS UP TO INSERT CHARS
1678	 02307	3050  		DCA	QP	/(LINK IS 1 FROM PREVIOUS SNL)
1679	 02310	1050  		TAD	QP
1680	 02311	1366  		TAD	MQMAX	/SEE IF OUT OF BOUNDS
1681	 02312	7620  		SNL CLA		/TWO PLACES TO TOGGLE LINK THERE
1682				.ERROR	12	/GETTING TOO FULL
1683	 02314	1051  		TAD	QZ
1684	 02315	3046  		DCA	Q
1685	 02316	1050  		TAD	QP
1686	 02317	3051  		DCA	QZ
1687	 02320	2050  		ISZ	QP
1688	 02321	1046  	L$:	TAD	Q
1689	 02322	7041  		CIA
1690	 02323	1047  		TAD	R	/DOUBLES AS ASCII FOR '
1691	 02324	7650  		SNA CLA
1692	 02325	5356  		JMP	QADJDN
1693	 02326	7040  		CMA
1694	 02327	1046  		TAD	Q
1695	 02330	3046  		DCA	Q
1696	 02331	7344  		MTWO
1697	 02332	1050  		TAD	QP
1698	 02333	3050  		DCA	QP
1699	 02334	1046  		TAD	Q
1700	 02335	4524  		GETQ
1701	 02336	4534  		QPUT
1702	 02337	5321  		JMP	L$
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 47
.	Q-register manipulation                        FILE # 1

1703			
1704			
1705	 02340	1047  	QDNN,	TAD	R	/MOVE Q-REGS DOWN TO ABSORB CHARACTERS
1706	 02341	3050  		DCA	QP
1707	 02342	1051  	1$:	TAD	QZ
1708	 02343	7041  		CIA
1709	 02344	1047  		TAD	R	/-NUMBER OF CHARS TO MOVE
1710	 02345	7650  		SNA CLA		/DONE?
1711	 02346	5354  		JMP	2$	/YES
1712	 02347	1047  		TAD	R
1713	 02350	4524  		GETQ
1714	 02351	4534  		QPUT
1715	 02352	2047  		ISZ	R
1716	 02353	5342  		JMP	1$	/LOOP AGAIN
1717	 02354	1050  	2$:	TAD	QP	/SET NEW VALUE
1718	 02355	3051  		DCA	QZ	/OF HIGHEST CHAR
1719	 02356	7330  	QADJDN,	STL CLA RAR	/4000
1720	 02357	0474  		AND I	QPTR	/SAVE HIGH ORDER PART
1721	 02360	1063  		TAD	MQ
1722	 02361	3474  		DCA I	QPTR	/SAVE NEW LENGTH OF Q-REGISTER IN Q-REG TABLE
1723	 02362	1043  		TAD	QCMND	/SET UP COMMAND LINE AGAIN
1724	 02363	4536  		SETCMD		/AS IT MAY HAVE BEEN SHUFFLED.
1725	 02364	4533  		QSUM		/RECOMPUTE POINTER TO BEGINNING OF NEW Q-REG
1726	 02365	5665  		JMP I	QADJ
1727			
1728	 02366	4060  	MQMAX,	-QMAX
1729			
1730	 02367	0000  	QOVER,	0		/SUBROUTINE TO SKIP TO END OF STRING
1731	 02370	4530  		QCHK		/GET THE QUOTE CHARACTER (IF ANY)
1732	 02371	1040  		TAD	SCANP
1733	 02372	3041  		DCA	OSCANP	/SAVE BACKUP SCAN POINTER
1734	 02373	4535  	L$:	QUOTST
1735	 02374	5767  		JMP I	QOVER	/FOUND AN ALTM OR EQUIVALENT - RETURN
1736	 02375	5373  		JMP	L$	/NOT END - SKIP ANOTHER CHAR
1737			
1738			/COULD MOVE ABOVE TO Q-OVERLAY
	------
	 02376	0556  
	 02377	0136  
1739		2400  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 48
.	Q-register manipulation                        FILE # 1

1740			
1741			
1742				.SBTTL	.	Q-register subroutines
1743			
1744			
1745	 02400	0000  	QSUMR,	0		/COMPUTE POINTER TO Q-REG
1746	 02401	7450  		SNA
1747	 02402	1071  		TAD	QNMBR	/NORMALLY USES QNMBR, BUT CAN BE OVERRIDDEN BY AC
1748	 02403	7041  		CIA
1749	 02404	3222  		DCA	KNT$
1750	 02405	3050  		DCA	QP
1751	 02406	1377  		TAD	(QARRAY	/BASE ADDR OF Q-REG POINTERS
1752	 02407	3074  		DCA	QPTR
1753	 02410	5217  		JMP	2$
1754	 02411	7350  	L$:	AC3777
1755	 02412	0474  		AND I	QPTR	/ADD # OF CHARS IN LOWER REG
1756	 02413	1050  		TAD	QP
1757	 02414	3050  		DCA	QP
1758	 02415	2074  		ISZ	QPTR	/SKIP VALUE WORD
1759	 02416	2074  		ISZ	QPTR	/POINT TO NEXT Q-REG
1760	 02417	2222  	2$:	ISZ	KNT$	/REACHED OUR Q-REGISTER YET?
1761	 02420	5211  		JMP	L$	/NO - ADD IN ANOTHER
1762	 02421	5600  		JMP I	QSUMR
1763	 02422	0000  	KNT$:	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 49
.	Q-register subroutines                         FILE # 1

1764			
1765			
1766	 02423	0000  	SGET,	0		/SCAN COMMAND LINE OR MACRO
1767	 02424	7200  	1$:	CLA		/** CALLED WITH AC NON-ZERO **
1768	 02425	1073  		TAD	QLENGT
1769	 02426	7141  		CIA CLL
1770	 02427	1040  		TAD	SCANP
1771	 02430	7630  		SZL CLA		/CHECK THAT WE ARE STILL INSIDE THE COMMAND LINE
1772	 02431	5245  		JMP	2$	/NO - COMMAND DONE
1773	 02432	1040  		TAD	SCANP	/GET CHARACTER POSITION IN LINE
1774	 02433	1072  		TAD	QBASE	/ADD IT TO THE ADDRESS OF THE LINE
1775	 02434	4524  		GETQ		/AND GET THAT CHARACTER.
1776	 02435	3106  		DCA	LASTC
1777	 02436	1023  		TAD	TFLG
1778	 02437	0106  		AND	LASTC	/IF THE TRACE FLAG IS ON,
1779	 02440	7440  		SZA
1780	 02441	4521  		TYPE		/PRINT THE CHAR
1781	 02442	1106  		TAD	LASTC
1782	 02443	2040  		ISZ	SCANP	/INCREMENT CHARACTER POINTER AFTER FETCH
1783	 02444	5623  		JMP I	SGET	/RETURN
1784	 02445	1034  	2$:	TAD	MPDL	/"MPDL" IS THE PUSHDOWN POINTER ON ENTRY TO THIS
1785	 02446	7450  		SNA		/MACRO. IF IT IS 0, WE ARE NOT IN A MACRO
1786	 02447	5776  		JMP I	(T1	/SO RETURN TO THE USER
1787	 02450	1042  		TAD	PDLP	/CHECK THAT THE ENDING POINTER IS THE SAME
1788	 02451	7001  		IAC
1789	 02452	7640  		SZA CLA		/AS THE ENTRY ONE - OTHERWISE WE HAVE
1790				.ERROR	13	/SCREWED UP SOMEHOW (EG WE ARE
1791	 02454	4510  		POP		/ IN THE MIDDLE OF A COMMAND)
1792	 02455	3040  		DCA	SCANP
1793	 02456	4510  		POP
1794	 02457	3032  		DCA	ITRST
1795	 02460	4510  		POP		/RESTORE THE PREVIOUS VALUES OF
1796	 02461	3034  		DCA	MPDL	/MPDL, THE SCAN POINTER AND THE COMMAND LINE
1797	 02462	4510  		POP		/POINTER FROM THE PUSHDOWN LIST
1798	 02463	4536  		SETCMD
1799	 02464	5224  		JMP	1$	/AND FETCH A CHARACTER FROM THE UPPER LEVEL.
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 50
.	Q-register subroutines                         FILE # 1

1800			
1801			
1802	 02465	0000  	CMDSET,	0		/SUBROUTINE TO SET UP COMMAND LINE POINTERS
1803	 02466	3043  		DCA	QCMND	/STORE IN COMMAND LINE NUMBER
1804	 02467	1043  		TAD	QCMND
1805	 02470	4533  		QSUM
1806	 02471	1050  		TAD	QP	/GET FIRST LOCATION IN COMMAND LINE
1807	 02472	3072  		DCA	QBASE	/AND STORE IN "QBASE"
1808	 02473	7350  		AC3777
1809	 02474	0474  		AND I	QPTR
1810	 02475	3073  		DCA	QLENGT	/STORE THE LINE LENGTH IN "QLENGT"
1811	 02476	5665  		JMP I	CMDSET	/RETURN
1812			
1813	 02477	0000  	QREFER,	0		/SET UP POINTERS FOR Q-REG REFERENCE
1814	 02500	7440  		SZA
1815	 02501	5314  		JMP	2$	/AHA - WE ALREADY HAVE THE Q-REGISTER
1816	 02502	4543  		SCANUP		/GET Q-REGISTER IDENTIFIER
1817	 02503	3071  		DCA	QNMBR
1818	 02504	1071  		TAD	QNMBR
1819	 02505	4544  		TSTSEP		/TEST FOR ALPHANUMERIC (LOWER CASE LEGAL)
1820				.ERROR	03	/OOPS - BAD Q-REGISTER REFERENCE
1821	 02507	1071  		TAD	QNMBR
1822	 02510	1164  		TAD	Z7700
1823	 02511	7510  		SPA		/NUMERIC?
1824	 02512	1052  		TAD	Z7	/YES - FORCE NUMBERS UP TO ABUT LETTERS
1825	 02513	1060  		TAD	Z12	/FORCE IDENTIFIER INTO THE RANGE 1-44 (OCTAL)
1826	 02514	3071  	2$:	DCA	QNMBR	/STORE AWAY NUMBER FOR FURTHER REFERENCE
1827	 02515	4533  		QSUM		/COMPUTE QP AND QPTR
1828	 02516	5677  		JMP I	QREFER	/RETURN
1829			
1830	 02517	5775  	CHR.U,	JMP I	(CHRUU
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 51
.	Q-register subroutines                         FILE # 1

1831			
1832			
1833				.SBTTL	Cmd ^T
1834			
1835	 02520	2024  	CTL.T,	NCHK
1836	 02521	5325  		JMP	CTLT2	/NO ARG
1837	 02522	1027  		TAD	N
1838	 02523	4521  	ET1,	TYPE		/TYPE CHAR REPRESENTED BY ARGUMENT
1839	 02524	5512  		POPJ
1840	 02525	4520  	CTLT2,	LISTEN		/^T COMMAND - VALUE OF NEXT CHAR FROM TTY
1841	 02526	4521  	ET8,	TYPE		/*ET	ECHO THE CHARACTER
1842	 02527	1035  		TAD	SCHAR	/GET THE CHARACTER
1843	 02530	7100  	NNEW13,	CLL
1844	 02531	7510  		SPA
1845	 02532	7120  		STL		/EXTEND SIGN BIT TO LINK
1846	 02533	5774  		JMP I	(NCOM	/RETURN -1 IF F.F., 0 OTHERWISE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 52
Cmd ^T                                           FILE # 1

1847			
1848			
1849				.SBTTL	.	Overlay handler
1850			
1851	 02534	0000  	OVERLY,	0
1852	 02535	1734  		TAD I	OVERLY	/GET LOCATION TO CHECK
1853	 02536	2334  		ISZ	OVERLY
1854	 02537	3351  		DCA	TMP
1855	 02540	1734  		TAD I 	OVERLY
1856	 02541	3334  		DCA	OVERLY	/SET RETURN ADDRESS
1857	 02542	1751  		TAD I	TMP	/IS OUR OVERLAY IN CORE?
1858	 02543	7450  		SNA
1859	 02544	5734  		JMP I	OVERLY	/YES, BRANCH INTO IT
1860	 02545	3351  		DCA	TMP	/NO, SET BLOCK TO READ IN
1861			/**	THE NEXT 5 WORDS ARE MODIFIED IF WE HAVE MORE THAN 12K
1862	 02546	4773  	OVREAD,	JMS I	(7607	/CALL SYSTEM HANDLER
1863	 02547	0200  		0200		/READ 2 PAGES
1864	 02550	3200  		3200		/INTO 3200
1865	 02551	0000  	TMP,	0		/FROM THIS BLOCK
1866	 02552	7402  		HLT		/ERROR READING OVERLAY
1867	 02553	5734  		JMP I	OVERLY	/GO TO NEXT SPOT
1868			
1869	 02554	7240  	CATS,	STA		/@ COMMAND - FAKE OUT "IREST"
1870	 02555	3025  	IREST,	DCA	QFLG	/RESET QUOTED STRING FLAG
1871	 02556	4526  		CTCCHK		/CHECK FOR CTRLC (NOT TOO OFTEN) *WM
1872	 02557	7200  		CLA		/EXIT LEAVES AC NON-ZERO
1873	 02560	1055  		TAD	CAAM
1874	 02561	3010  		DCA	QUOTE	/RESET QUOTE CHAR TO ALTMODE
1875	 02562	5512  	POPK,	POPJ		/RETURN
1876			
1877	 02563	0000  	QTST,	0		/SUBROUTINE TO GET A CHAR AND TEST FOR ALTMODE
1878	 02564	4517  		SCAN
1879				.SORT	QUOTE,QTST	/RETURN IF QUOTE FOUND
1880	 02570	2363  		ISZ	QTST
1881	 02571	5763  		JMP I	QTST	/SKIP-RETURN WITH AC INTACT IF NOT FOUND
1882			
1883			SCHCTE,	.ERROR 39	/ILLEGAL CTRL/E
	------
	 02573	7607  
	 02574	0000 *
	 02575	4517  
	 02576	0206  
	 02577	4630  
1884		2600  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 53
.	Overlay handler                                FILE # 1

1885			
1886			
1887	 02600	0001 *	ERRXX,	ERR30+1		/ENTRY POINT ALSO SERVES AS A FLAG FOR "TQMK"
1888	 02601	6032  		KCC		/CLEARS AC
1889	 02602	6201  		CDF 0		/JUST IN CASE
1890				.OVRLAY	E,ERRYY
1891			
1892	 02606	5607  	ERRRET,	JMP I	EH4	/CONTINUE AS NORMAL UNLESS USER TYPES "?"
1893	 02607	0203  	EH4,	T0		/*EH
1894			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 54
.	Overlay handler                                FILE # 1

1895			
1896			
1897				.SBTTL	Cmd E
1898			
1899	 02610	4543  	CHR.E,	SCANUP		/GET CHARACTER AFTER E
1900	 02611	4553  		TESTA		/CHECK FOR ALPHABETIC
1901				.ERROR	19	/BAD CHARACTER AFTER E
1902	 02613	1377  		TAD	(ELIST-"A
1903	 02614	3327  		DCA	TYI
1904	 02615	1727  		TAD I	TYI	/GET ENTRY FROM DISPATCH TABLE
1905	 02616	3233  	OVBRAN,	DCA	2$	/BRANCH TO OVERLAY
1906	 02617	1233  		TAD	2$
1907	 02620	0166  		AND	Z377
1908	 02621	1376  		TAD	(3200	/BASE OF OVERLAY AREA
1909	 02622	3234  		DCA	1$	/ADDRESS
1910	 02623	1233  		TAD	2$
1911	 02624	7004  		RAL
1912	 02625	7006  		RTL
1913	 02626	7006  		RTL
1914	 02627	0052  		AND	Z7
1915	 02630	1376  		TAD	(3200
1916	 02631	3233  		DCA	2$	/KEY
1917	 02632	4550  		OVRLAY
1918	 02633	0000  	2$:	0
1919	 02634	0000  	1$:	0
1920			
1921			/FORMAT OF CALL TO OVBRAN:
1922			
1923			/	TAD	(OVERLAY CODE
1924			/	JMP	OVBRAN
1925			
1926			/OVERLAY CODE HAS THE FOLLOWING FORMAT:
1927			
1928			/BIT	MEANING
1929			/0	WILL BE IGNORED (USUALLY NEGATIVE)
1930			/1-3	OVERLAY NUMBER
1931			/4-11	RELATIVE ADDRESS WITHIN OVERLAY
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 55
Cmd E                                            FILE # 1

1932			
1933			
1934				.SBTTL	Cmd I
1935			
1936	 02635	2024  	CHR.I,	NCHK		/I COMMAND
1937	 02636	5245  		JMP	CIL1
1938	 02637	1027  		TAD	N	/INSERT CHAR WHOSE VALUE IS N
1939	 02640	4340  		JMS	UPOC
1940			/*** CHECK FOR $
1941	 02641	5512  		POPJ
1942			
1943				.SBTTL	Cmd <TAB>
1944			
1945				.SBTTL	Cmd ^I
1946			
1947	 02642	3025  	CTL.I,	DCA	QFLG	/CANNOT BE QUOTED
1948	 02643	1054  		TAD	CAHT	/TAB
1949	 02644	4340  		JMS	UPOC
1950	 02645	4531  	CIL1,	QSKP		/COUNT LENGTH OF INSERTION
1951	 02646	3064  		DCA	DVT1	/ZERO FUDGE USED BY FS COMMAND
1952	 02647	1041  	CIL2,	TAD	OSCANP
1953	 02650	1072  		TAD	QBASE
1954	 02651	3050  		DCA	QP	/SET UP POINTER TO INSERTION STRING
1955	 02652	1040  		TAD	SCANP
1956	 02653	7141  		CIA CLL
1957	 02654	1041  		TAD	OSCANP
1958	 02655	3063  		DCA	MQ	/STORE CHAR COUNT TO INSERT (-1)
1959	 02656	1063  		TAD	MQ
1960	 02657	1064  		TAD	DVT1	/ADD FS FUDGE
1961	 02660	7040  		CMA
1962	 02661	7420  		SNL		/DID WE INSERT MORE THAN WE DELETED?
1963	 02662	5324  		JMP	EXPAND	/YES - IGNORE SIGN BIT OF COUNT
1964	 02663	7041  		CIA
1965	 02664	4511  		PUSHJ
1966	 02665	0735  			ADJ2	/COMPRESS OUT EXCESS DELETED STUFF
1967	 02666	5274  		JMP	CIL4
1968	 02667	1050  	CIL3,	TAD	QP
1969	 02670	4524  		GETQ		/GET A CHAR
1970	 02671	3327  		DCA	TYI
1971	 02672	4277  		JMS	STOREC	/STORE A CHARACTER
1972	 02673	2050  		ISZ	QP
1973	 02674	2063  	CIL4,	ISZ	MQ
1974	 02675	5267  		JMP	CIL3	/OF INSERTION
1975	 02676	5366  		JMP	ZRON
1976			
1977	 02677	0000  	STOREC,	0		/STORE CHAR IN "TYI" INTO TEXT BUFFER AT P
1978	 02700	6211  		CDF 10
1979	 02701	1444  		TAD I	P
1980	 02702	0155  		AND	Z7400
1981	 02703	1327  		TAD	TYI
1982	 02704	3444  		DCA I	P
1983	 02705	6201  		CDF 0
1984	 02706	2044  		ISZ	P
1985	 02707	5677  		JMP I	STOREC
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 56
Cmd ^I                                           FILE # 1

1986			
1987			
1988				.SBTTL	Cmd G
1989			
1990	 02710	4532  	CHR.G,	QREF		/G COMMAND - GET Q-REGISTER NUMBER
1991	 02711	3024  		DCA	NFLG
1992	 02712	7350  		AC3777
1993	 02713	0474  		AND I	QPTR	/GET COUNT OF CHARS IN REGISTER
1994	 02714	7040  		CMA
1995	 02715	3063  		DCA	MQ	/SAVE AS TRANSFER COUNT
1996	 02716	2022  		ISZ	CLNF
1997	 02717	7410  		SKP
1998	 02720	5362  		JMP	COLG4
1999	 02721	3022  		DCA	CLNF
2000	 02722	7350  		AC3777
2001	 02723	0474  		AND I	QPTR
2002	 02724	4511  	EXPAND,	PUSHJ		/COME HERE FROM INSERT LOGIC
2003	 02725	0665  			ADJ	/INCREASE TEXT BUFFER SIZE ( Q-REG LENGTH MAY
2004	 02726	5274  		JMP	CIL4	/BE NEGATIVE) AND GO TRANSFER THE CHARS
2005			
2006	 02727	0000  	TYI,	0		/TELETYPE INPUT
2007	 02730	6031  	TYI1,	KSF		/*VT52 WAIT FOR THE KEYBOARD FLAG
2008	 02731	5330  	KSFWT,	JMP	.-1	/*VT52 WHILE WAITING, DISPLAY TEXT ON SCOPE
2009	 02732	4526  		CTCCHK		/*VT52 CHECK FOR ^C
2010	 02733	6036  		KRB		/*VT52 WATCH OUT - AC MAY NOT BE 0!
2011	 02734	7510  	TYIRET,	SPA
2012	 02735	5727  		JMP I	TYI	/ALLOW READ WITH NO WAIT TO RETURN -1
2013	 02736	0167  		AND	Z177	/MUST GET RID OF HIGH-ORDER BIT
2014	 02737	5727  		JMP I	TYI
2015			
2016	 02740	0000  	UPOC,	0		/MOVE TEXT BUFFER UP ONE CHAR
2017	 02741	0167  		AND	Z177
2018	 02742	3327  		DCA	TYI
2019	 02743	7201  		CLA IAC
2020	 02744	4511  		PUSHJ
2021	 02745	0665  			ADJ
2022	 02746	4277  		JMS	STOREC	/STORE CHAR IN THE HOLE WE MADE
2023	 02747	5740  		JMP I	UPOC
2024			
2025	 02750	0000  	CUPPER,	0		/FORCE CHARACTER TO UPPER CASE
2026	 02751	1164  		TAD	ZM100
2027	 02752	7500  		SMA		/IF ITS >100
2028	 02753	0176  		AND	Z137	/REDUCE IT TO BE <140
2029	 02754	1175  		TAD	Z100	/ABOVE LITERAL COULD HAVE BEEN (37
2030	 02755	5750  		JMP I	CUPPER	/RETURN
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 57
Cmd G                                            FILE # 1

2031			
2032			
2033	 02756	1050  	COLG3,	TAD	QP
2034	 02757	4524  		GETQ		/GET A CHAR
2035	 02760	4521  		TYPE
2036	 02761	2050  		ISZ	QP
2037	 02762	2063  	COLG4,	ISZ	MQ
2038	 02763	5356  		JMP	COLG3
2039	 02764	5512  		POPJ
2040			
2041	 02765	3040  	ZROSPN,	DCA	SCANP	/RESET TO BEGINNING OF ITERATION
2042	 02766	3024  	ZRON,	DCA	NFLG	/KILL NUMBER FLAG
2043	 02767	3021  		DCA	CFLG	/KILL COMMA FLAG
2044	 02770	5571  		JMP I	ZIREST
2045			
2046				.SBTTL	Imm *
2047			
2048			TSAVE,	.OVRLAY X,TSAV
2049			
	------
	 02776	3200  
	 02777	7677 *
2050		3000  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 58
Imm *                                            FILE # 1

2051			
2052			
2053	 03000	4511  	TBS,	PUSHJ
2054	 03001	0000 *			CMIN
2055	 03002	4511  	TLF,	PUSHJ
2056	 03003	0614  			CHR.L
2057	 03004	4523  		CRLF
2058	 03005	4511  		PUSHJ
2059	 03006	1654  			CHR.T
2060	 03007	5777  		JMP I	(T0A
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 59
Imm *                                            FILE # 1

2061			
2062			
2063				.SBTTL	Cmd Q
2064			
2065	 03010	4532  	CHR.Q,	QREF		/COMMAND Q
2066	 03011	7100  		CLL
2067	 03012	5215  		JMP	CQOA
2068			
2069	 03013	4532  	CPCS,	QREF		/COMMAND %
2070	 03014	4537  		GETN
2071	 03015	2074  	CQOA,	ISZ	QPTR	/POINT TO VALUE WORD
2072	 03016	1474  		TAD I	QPTR	/INCREMENT VALUE BY ARGUMENT
2073	 03017	3474  		DCA I	QPTR
2074			/ADD LINKS
2075	 03020	7240  		STA
2076	 03021	1074  		TAD	QPTR	/GO BACK ONE
2077	 03022	3233  		DCA	QPTR2	/ALSO COMPL LINK
2078	 03023	7030  		CML RAR
2079	 03024	1633  		TAD I	QPTR2
2080	 03025	3633  		DCA I	QPTR2
2081	 03026	1633  		TAD I	QPTR2
2082	 03027	7004  		RAL
2083	 03030	7200  		CLA
2084	 03031	1474  		TAD I	QPTR
2085	 03032	5776  		JMP I	(NCOM	/MAKE A NUMBER
2086			
2087			QPTR2,
2088	 03033	0000  	TYCRLF,	0		/TYPE A CR AND LF
2089	 03034	1053  		TAD	CACR	/CR
2090	 03035	4521  		TYPE
2091	 03036	1060  		TAD	CALF	/LF
2092	 03037	4521  		TYPE
2093	 03040	5633  		JMP I	TYCRLF	/RETURN
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 60
Cmd Q                                            FILE # 1

2094			
2095			
2096				.SBTTL	Cmd ,
2097			
2098	 03041	2024  	CCMA,	NCHK		/COMMAND ,
2099	 03042	5061  		JMP	NERR	/NUMBER FLAG NOT SET (COULD GIVE ?NAC HERE)
2100	 03043	1030  		TAD	NLINK
2101	 03044	7640  		SZA CLA
2102				.ERROR	26	/NEG ARGUMENT TO ,
2103	 03046	2021  		ISZ	CFLG
2104	 03047	7410  		SKP
2105	 03050	5061  		JMP	NERR	/3 NUMERIC ARGUMENTS
2106	 03051	1027  		TAD	N	/MOVE N TO M
2107	 03052	3026  	CCMA3,	DCA	M	/ENTERED HERE BY "H" COMMAND
2108	 03053	3027  		DCA	N	/AND CLEAR N
2109	 03054	7240  		STA
2110	 03055	3021  		DCA	CFLG	/SET COMMA FLAG
2111	 03056	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 61
Cmd ,                                            FILE # 1

2112			
2113			
2114				.SBTTL	.	Number routines
2115			
2116			/RETURNS 13-BIT RESULT IN AC,LINK
2117			
2118	 03057	0000  	NGET,	0		/SUBROUTINE TO GET LAST NUMBER, WITH
2119	 03060	2024  	NGET1,	NCHK		/DEFAULT VALUES OF +1 (NO NUMBER),
2120	 03061	5264  		JMP	NGET2	/OR -1 (JUST A MINUS SIGN)
2121	 03062	4551  		GETNUM
2122	 03063	5657  		JMP I	NGET	/DIGITS SEEN - RETURN THEM
2123	 03064	7301  	NGET2,	CLA CLL IAC	/NO DIGITS SEEN
2124	 03065	4511  		PUSHJ		/MAKE BELIEVE WE SAW THE DIGIT "1"
2125	 03066	0000 *			NCOM	/AND CREATE A NUMBER FROM IT (TAKING ANY
2126	 03067	5260  		JMP	NGET1	/OPERATORS INTO ACCOUNT) AND USE IT
2127			
2128	 03070	0000  	BACKUP,	0
2129	 03071	1573  		TAD I	ZQPNTR	/SEE IF ANYTHING TO ERASE
2130	 03072	7650  		SNA CLA
2131	 03073	5775  		JMP I	(T0	/NO, START ALL OVER
2132	 03074	7240  		STA
2133	 03075	1573  		TAD I	ZQPNTR	/THEN THE CHARACTER COUNT
2134	 03076	4540  		ADJQ		/REDUCE THE LENGTH OF THE COMMAND REGISTER BY 1
2135	 03077	1051  		TAD	QZ
2136	 03100	4524  		GETQ		/GET THE CHARACTER WE RUBBED OUT
2137	 03101	5670  		JMP I	BACKUP
2138			
2139	 03102	0000  	CHLCMP,	0		/COMPARISON SUBROUTINE
2140	 03103	1444  		TAD I	P	/DATA FIELD IS 10
2141	 03104	0166  		AND	Z377
2142	 03105	6201  		CDF	0
2143				.SORT	CAFF,LFTAB
2144	 03111	7710  		SPA CLA		/LINE TERMINATORS ARE CHANGED TO NEGATIVE NOS.
2145	 03112	2102  		ISZ	CDT	/IS COUNT EXHAUSTED?
2146	 03113	5326  		JMP	CHLRET	/NO
2147	 03114	2044  	CHRLI,	ISZ	P
2148	 03115	7000  		NOP
2149	 03116	6201  		CDF	0
2150	 03117	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 62
.	Number routines                                FILE # 1

2151			
2152			
2153				.SBTTL	Cmd H
2154			
2155	 03120	4511  	CHR.H,	PUSHJ		/COMMAND H
2156	 03121	3052  			CCMA3	/SET M=0 AND COMMA FLAG ON AND FALL INTO "Z"
2157						/** COULD CAUSE ERROR ON B AND H IF NFLG SET
2158				.SBTTL	Cmd Z
2159			
2160	 03122	1045  	CHR.Z,	TAD	ZZ	/COMMAND Z
2161	 03123	7410  		SKP		/SKIP OVER CTL.H *WM
2162			
2163				.SBTTL	Cmd ^H
2164			
2165	 03124	6770  	CTL.H,	6770		/^H COMMAND - TIME OF DAY - MULTI-8 *WM
2166			
2167				.SBTTL	Cmd B
2168			
2169	 03125	5774  	CHR.B,	JMP I	(NCOM14	/COMMAND B
2170			
2171	 03126	6211  	CHLRET,	CDF	10
2172	 03127	5702  		JMP I	CHLCMP
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 63
Cmd B                                            FILE # 1

2173			
2174			
2175				.SBTTL	Cmd M
2176			
2177	 03130	4532  	CHR.M,	QREF		/COMMAND M
2178	 03131	1373  		TAD	(-4	/4 ITEMS PUSHED TO
2179	 03132	4513  		PUSHL		/SAVE CURRENT MACRO STATE
2180	 03133	0043  			QCMND
2181	 03134	0034  			MPDL
2182	 03135	0032  			ITRST	/SO THE "O" COMMAND WILL WORK IN MACROS
2183	 03136	0040  			SCANP	/ZEROED BY "PUSHL"
2184	 03137	1042  		TAD	PDLP	/MUST CHECK PDL AT END OF MACRO
2185	 03140	7041  		CIA
2186	 03141	3034  		DCA	MPDL
2187	 03142	1071  		TAD	QNMBR	/Q-REGISTER TO EXECUTE
2188	 03143	4536  		SETCMD		/SET COMMAND LINE TO THIS Q-REG
2189	 03144	5512  		POPJ		/LEAVE NUMBER FLAG ALONE AND EXIT
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 64
Cmd M                                            FILE # 1

2190			
2191			
2192	 03145	1035  	TCTLU,	TAD	SCHAR
2193	 03146	4521  		TYPE		/PRINT "^U"
2194	 03147	4772  	TCTLS,	JMS I	(BACKUP
2195	 03150	1161  		TAD	ZM12	/CHECK FOR LF
2196	 03151	7640  		SZA CLA
2197	 03152	5347  		JMP	TCTLS	/LOOP UNTIL LF
2198	 03153	7001  		IAC
2199	 03154	1573  		TAD I	ZQPNTR
2200	 03155	4540  		ADJQ
2201	 03156	5771  		JMP I	(SCP.CR
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 65
Cmd M                                            FILE # 1

2202			
2203			
2204			/COULD REPLACE 4044 BY OUTESC
2205			/OUTESC,TAD (44-33-100
2206			/	JMP OUTLF2	/TO FIX ^T INPUT OF <ESC> BUG
2207			
2208	 03157	2262  	CTLTAB,	OUT.BEL	/BELL
2209	 03160	2222  		OUT.CR
2210	 03161	2231  	POUTHT,	OUT.HT
2211	 03162	4044  		4044		/$ WITH SIGN BIT ON
2212	 03163	2225  		OUT.FF
2213	 03164	2224  		OUT.VT
2214	 03165	2216  		OUT.LF
	------
	 03171	1461  
	 03172	3070  
	 03173	7774  
	 03174	2017  
	 03175	0203  
	 03176	0000 *
	 03177	0204  
2215		3200  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 66
Cmd M                                            FILE # 1

2216			
2217			
2218				.SBTTL
2219			
2220		0200  		.ASECT TEC0C
2221			
2222		3600  		*3600
2223			
2224	 03600	1065  	NORMAL,	TAD	ODEV	/CLOSE FILE
2225	 03601	6212  		CIF 10
2226	 03602	4560  		JMS I	Z200
2227	 03603	0004  		4
2228	 03604	4741  		OUNAM
2229	 03605	0000  	OCNT,	0		/NUMBER OF BLOCKS
2230	 03606	7402  		HLT
2231	 03607	1114  		TAD	ERROR	/RESET OUTPUT SUBROUTINE POINTER
2232	 03610	3122  		DCA	OUTR	/TO ERROR
2233	 03611	6212  	ECDISM,	CIF 10		/DISMISS OS/8 USR ROUTINE
2234	 03612	4560  		JMS I	Z200
2235	 03613	0011  		11		/KICK USR OUT
2236	 03614	5571  		JMP I	ZIREST
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 67
                                                 FILE # 1

2237			
2238			
2239			/	SKIP IF LETTER OR DIGIT
2240			
2241	 03615	0000  	SCHSRT,	0
2242	 03616	4553  		TESTA		/TEST FOR LETTER
2243	 03617	7410  		SKP		/NOT ALPHABETIC
2244	 03620	2215  		ISZ	SCHSRT	/YES IT'S ALPHABETIC
2245	 03621	4554  		TESTD		/TEST FOR DIGIT
2246	 03622	5615  		JMP I	SCHSRT	/NOT A DIGIT
2247	 03623	2215  		ISZ	SCHSRT	/YES, IT'S A DIGIT
2248	 03624	5615  		JMP I	SCHSRT	/RETURN
2249			
2250	 03625	0000  	RT,	0		/ROUTINE TO PACK THIRD CHAR INTO OUTPUT BUFFER
2251	 03626	7106  		CLL RTL
2252	 03627	7006  		RTL
2253	 03630	3006  		DCA	DM	/CALLED TWICE - FIRST TIME WITH CHAR IN AC,
2254	 03631	1006  		TAD	DM	/SECOND TIME WITH "DM" IN AC
2255	 03632	0155  		AND	Z7400
2256	 03633	1477  		TAD I	OPTR2
2257	 03634	3477  		DCA I	OPTR2
2258	 03635	2077  		ISZ	OPTR2
2259	 03636	5625  		JMP I	RT
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 68
                                                 FILE # 1

2260			
2261			
2262	 03637	0000  	DVIMQL,	0		/FAKE MQL DVI
2263	 03640	3064  		DCA	DVT1	/STORE DIVIDEND
2264	 03641	3063  		DCA	MQ	/INITIALIZE QUOTIENT
2265	 03642	1637  	1$:	TAD I	DVIMQL	/GET DIVISOR
2266	 03643	7041  		CIA
2267	 03644	7100  		CLL		/SET UP TO TAKE IMMEDIATE EXIT ON ZERODIVIDE
2268	 03645	1064  		TAD	DVT1	/SUBTRACT DIVISOR FROM DIVIDEND
2269	 03646	7420  		SNL		/OVERFLOWED YET?
2270	 03647	5253  		JMP	2$	/YES
2271	 03650	3064  		DCA	DVT1	/NO - STORE IT BACK
2272	 03651	2063  		ISZ	MQ	/BUMP QUOTIENT
2273	 03652	5242  		JMP	1$	/AND LOOP
2274	 03653	7200  	2$:	CLA
2275	 03654	1063  		TAD	MQ
2276	 03655	2237  		ISZ	DVIMQL	/SKIP PAST DIVISOR
2277	 03656	5637  		JMP I	DVIMQL	/RETURN WITH QUOTIENT IN AC
2278			
2279	 03657	0000  	CHKQF,	0		/CHECK FOR EXPLICIT QUOTES
2280	 03660	2025  		ISZ	QFLG	/QUOTE FLAG SET?
2281	 03661	5264  		JMP	.+3	/NO
2282	 03662	4517  		SCAN		/GET QUOTING CHAR
2283	 03663	3010  		DCA	QUOTE	/PUT INTO SEARCH TABLE
2284	 03664	3025  		DCA	QFLG	/ZAP QUOTE FLAG
2285	 03665	5657  		JMP I	CHKQF	/RETURN
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 69
                                                 FILE # 1

2286			
2287			
2288			/******************
2289			/
2290			/	THE FOLLOWING COULD MOVE TO OVERLAY
2291			/
2292			/******************
2293			
2294	 03666	0000  	SAVTRA,	0		/SAVE TRACE MODE
2295	 03667	1023  		TAD	TFLG
2296	 03670	3277  		DCA	TFGTMP
2297	 03671	3023  		DCA	TFLG
2298	 03672	5666  		JMP I	SAVTRA	/EXIT WITH TRACE OFF
2299			
2300	 03673	0000  	RESTRA,	0		/RESTORE TRACE MODE
2301	 03674	1277  		TAD	TFGTMP
2302	 03675	3023  		DCA	TFLG
2303	 03676	5673  		JMP I	RESTRA
2304	 03677	0000  	TFGTMP,	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 70
                                                 FILE # 1

2305			
2306			
2307	 03700	0000  	DECPUT,	0		/DEVICE INDEPENDENT I/O
2308	 03701	1160  		TAD	Z200	/ADD ON PARITY BIT
2309	 03702	2347  		ISZ	O3	/3RD CHAR OF 3?
2310	 03703	5341  		JMP	O2	/NO
2311	 03704	4225  		JMS	RT	/YES, SPECIAL HANDLING
2312	 03705	1006  		TAD	DM	/TEMP STORAGE
2313	 03706	4225  		JMS	RT
2314	 03707	7346  	SETO3,	MTHREE		/RESET SWITCH
2315	 03710	3347  		DCA	O3
2316	 03711	2076  		ISZ	OCRCNT	/END OF BUFFER?
2317	 03712	5700  		JMP I	DECPUT	/NO
2318	 03713	4350  		JMS	FITS	/CHECK FOR OUTPUT OVERFLOW
2319	 03714	5335  		JMP	OERR	/YUP
2320	 03715	3205  		DCA	OCNT	/NO - UPDATE OUTPUT COUNT
2321	 03716	4466  		JMS I	OUTHND	/OUTPUT THE BUFFER
2322	 03717	4400  	OUCTRL,	4400
2323	 03720	5200  	BUFOUT,	OUT
2324	 03721	0000  	OBLK,	0
2325	 03722	5335  		JMP	OERR
2326	 03723	1321  		TAD	OBLK
2327	 03724	1012  		TAD	INRSIZ	/BUMP THE OUTPUT RECORD NUMBER BY THE MAXIMUM
2328	 03725	3321  	OSETP,	DCA	OBLK	/SINCE ALL WRITES EXCEPT THE LAST ARE MAXIMAL
2329	 03726	1320  		TAD	BUFOUT	/BUFFER POINTERS
2330	 03727	3344  		DCA	OPTR1
2331	 03730	1320  		TAD	BUFOUT
2332	 03731	3077  		DCA	OPTR2
2333	 03732	1346  		TAD	OUTSIZ
2334	 03733	3076  		DCA	OCRCNT	/DOUBLEWORD COUNT (7377 IF 8K, 6777 IF 12K)
2335	 03734	5307  		JMP	SETO3	/SET BYTE COUNTER AND RETURN
2336	 03735	7200  	OERR,	CLA
2337	 03736	1114  		TAD	ERROR
2338	 03737	3122  		DCA	OUTR	/INHIBIT FUTURE OUTPUT
2339				.ERROR	14
2340	 03741	3744  	O2,	DCA I	OPTR1	/NORMAL HANDLING
2341	 03742	2344  		ISZ	OPTR1	/BUMP POINTER
2342	 03743	5700  		JMP I	DECPUT
2343	 03744	0000  	OPTR1,	0
2344	 03745	0000  	OMAXLN,	0		/SIZE OF HOLE FOR OUTPUT
2345	 03746	7377  	OUTSIZ,	7377		/6777
2346	 03747	0000  	O3,	0
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 71
                                                 FILE # 1

2347			
2348			
2349	 03750	0000  	FITS,	0		/SUBROUTINE TO CHECK FOR OUTPUT OVERFLOW
2350	 03751	1344  		TAD	OPTR1	/** AC MAY CONTAIN FUDGE ON INPUT **
2351	 03752	7041  		CIA
2352	 03753	1320  		TAD	BUFOUT	/COMPUTE NUMBER OF WORDS IN BUFFER
2353	 03754	0155  		AND	Z7400	/ROUND "UP" TO NEXT BUFFERLOAD
2354	 03755	7041  		CIA		/MAKE POSITIVE
2355	 03756	7130  		CLL CML RAR
2356	 03757	3317  		DCA	OUCTRL	/AND SAVE IT AS A BUFFER CONTROL WORD
2357	 03760	1317  		TAD	OUCTRL
2358	 03761	7104  		CLL RAL
2359	 03762	7106  		CLL RTL		/ISOLATE THE BLOCK COUNT OF THE CONTROL WORD
2360	 03763	7006  		RTL		/IN THE LOW ORDER PART OF THE AC
2361	 03764	7004  		RAL
2362	 03765	1205  		TAD	OCNT	/ADD IT TO THE CURRENT OUTPUT COUNT
2363	 03766	7120  		CLL CML
2364	 03767	1345  		TAD	OMAXLN	/SEE THAT WE DIDN'T OVERFLOW
2365	 03770	7460  		SNL SZA		/THE ASSIGNED OUTPUT AREA
2366	 03771	5750  		JMP I	FITS	/OOPS - WE DID - ERROR RETURN
2367	 03772	7041  		CIA
2368	 03773	1345  		TAD	OMAXLN	/SUBTRACT OFF THE LIMIT
2369	 03774	7041  		CIA		/TO ARRIVE AT THE UPDATED BLOCK COUNT
2370	 03775	2350  		ISZ	FITS
2371	 03776	5750  		JMP I	FITS	/AND SKIP RETURN
2372		4000  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 72
                                                 FILE # 1

2373			
2374			
2375		0200  		.ASECT	TECO2
2376			
2377		4400  		*4400
2378			
2379				.SBTTL
2380			
2381	 04400	0000  	STABLE,	ZBLOCK	40	/SEARCH BUFFER
2382			
2383			/MUST KEEP THIS CODE IMMEDIATELY AFTER STABLE
2384				.SBTTL	Cmd W
2385			
2386	 04440	2024  	CHR.W,	NCHK		/*VT52 W COMMAND - IF THERE WAS A NUMBER BEFORE
2387	 04441	5244  		JMP	2$	/*VT52 THE W, SET THE NUMBER OF LINES TO DISPLAY
2388	 04442	1027  		TAD	N	/*VT52 EQUAL TO THAT NUMBER.
2389	 04443	3013  		DCA	NUMLNS	/*VT52
2390						/DON'T WORRY ABOUT NEGATIVE N
2391	 04444	2047  	2$:	ISZ	R	/FAKE OUT! (MUST BE BEFORE CALL TO DISPLY)
2392	 04445	4545  		DISPLY		/IN ANY CASE, GO THROUGH ONE DISPLAY CYCLE
2393	 04446	5512  	CTLWR,	POPJ		/THEN RETURN
2394			
2395	 04447	0241  	AIDTAB,	ROCMND		/RUBOUT
2396	 04450	3145  		TCTLU		/^U		(COULD BE T2M1)
2397	 04451	0320  		TQMK		/?
2398	 04452	2771  		TSAVE		/*
2399	 04453	3002  		TLF		/LF
2400	 04454	3000  		TBS		/BS
2401	 04455	0323  		TSLASH		/SLASH
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 73
Cmd W                                            FILE # 1

2402			
2403			
2404	 04456	0000  	NXTBUF,	0
2405	 04457	7640  		SZA CLA
2406	 04460	5270  		JMP	1$	/READ-ONLY IF AC NOT 0 ON ENTRY
2407	 04461	4511  		PUSHJ
2408	 04462	1656  			CPOC	/HP
2409	 04463	3045  		DCA	ZZ	/FORCE Y TO WORK
2410	 04464	2036  		ISZ	FFFLAG	/IF WE DIDN'T SEE A FORM FEED ON INPUT
2411	 04465	5270  		JMP	1$	/DON'T OUTPUT ONE
2412	 04466	1056  		TAD	CAFF
2413	 04467	4522  		OUTPUT
2414	 04470	4511  	1$:	PUSHJ
2415	 04471	2023  			CHR.Y	/READ NEW BUFFER
2416	 04472	4526  		CTCCHK		/CHECK FOR ^C
2417	 04473	7200  		CLA		/*K* CTCCHK LEAVES AC NON-ZERO!
2418	 04474	5656  		JMP I	NXTBUF
2419			
2420	 04475	0000  	GETUSR,	0		/ROUTINE TO LOCK THE USR INTO CORE
2421	 04476	6201  		CDF 0
2422	 04477	1045  		TAD	ZZ	/IF THE TEXT BUFFER IS EMPTY AND
2423	 04500	7650  		SNA CLA		/WE HAVE 12K, SO Q-REGS ARE IN FIELD 2,
2424	 04501	7000  	NWRUSR,	NOP		/(CHANGED BY INIT CODE TO "TAD Z4" IF 12K)
2425	 04502	7132  		STL RTR		/THEN WE SHOULD NOT SAVE CORE ON A USR CALL.
2426			/	DCA I	(JSBITS	/THIS STORES A 2000 OR A 2001
2427	 04503	3775  		DCA I	M32	/"
2428	 04504	6212  		CIF 10
2429	 04505	4564  		JMS I	Z7700	/OK - NOW LOAD THE USR IN
2430	 04506	0010  		10
2431	 04507	5675  		JMP I	GETUSR
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 74
Cmd W                                            FILE # 1

2432			
2433			
2434	 04510	0177  	AIDLST,	177		/RUBOUT
2435	 04511	0025  		^"U		/^U
2436	 04512	0077  		"?		/?
2437	 04513	0052  		"*		/*
2438	 04514	0012  		12		/LF
2439	 04515	0010  		10		/BS
2440	 04516	0057  	L16K,	"/		/SLASH	(MUST BE LAST) -1 IF NO EXTENDED ERRS
2441			
2442				.SBTTL	Cmd U
2443			
2444	 04517	4532  	CHRUU,	QREF		/COMMAND U
2445	 04520	2024  		NCHK
2446				.ERROR	22	/U MUST BE PRECEDED BY A NUMBER
2447	 04522	1030  		TAD	NLINK
2448	 04523	7112  		CLL RTR
2449	 04524	3030  		DCA	NLINK
2450	 04525	7350  		AC3777
2451	 04526	0474  		AND I	QPTR
2452	 04527	1030  		TAD	NLINK
2453	 04530	3474  		DCA I	QPTR
2454	 04531	2074  		ISZ	QPTR
2455	 04532	1027  		TAD	N
2456	 04533	3474  		DCA I	QPTR
2457	 04534	5512  		POPJ
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 75
Cmd U                                            FILE # 1

2458			
2459			
2460			/SKIP IF LETTER (LEAVES U.C. OF CHAR IN AC)
2461			
2462	 04535	0000  	TSTA,	0
2463	 04536	4542  		UPPERC		/MAKE LIFE EASIER FOR US
2464	 04537	1365  		TAD	M101
2465	 04540	7100  		CLL
2466	 04541	1375  		TAD	M32
2467	 04542	7420  		SNL
2468	 04543	2335  		ISZ 	TSTA
2469	 04544	1377  		TAD	(101+26.
2470	 04545	5735  		JMP I	TSTA
2471			
2472	 04546	0001  	EDFLAG,	1		/MUST BE KEPT TOGETHER
2473	 04547	0002  	EHFLAG,	2
2474	 04550	0062  	EOFLAG,	VERSN
2475	 04551	0000  	ESFLAG,	0
2476	 04552	0204  	ETFLAG,	200+4		/INITIALLY ABORT ON ERROR AND READ LOWER CASE
2477	 04553	0000  	EUFLAG,	0
2478			/EVFLAG,	0
2479			/CXFLAG,	0
2480			
2481	 04554	0007  	COMLST,	7		/^G, COMMAND LINE EDIT LIST
2482	 04555	0015  		15		/CR, INSERT CR & LF
2483	 04556	0177  		177		/RUBOUT
2484	 04557	0021  		^"Q		/XON, IGNORE *WM
2485	 04560	0023  		^"S		/XOF, IGNORE *WM
2486	 04561	0025  		^"U		/^U - RUB OUT LINE
2487	 04562	0033  		33		/ALT MODE
2488	 04563	0052  		"*		/*
2489	 04564	0040  		40		/SPACE
2490	 04565	7677  	M101,	-101
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 76
Cmd U                                            FILE # 1

2491			
2492			
2493			/SEARCH STRING MODIFIERS:
2494			
2495	 04566	0016  	SCHLST,	^"N	/^N - ANYTHING BUT
2496	 04567	0021  		^"Q	/^Q - LITERALLY
2497	 04570	0023  		^"S	/^S - ANY SEPARATOR
2498	 04571	0030  		^"X	/^X - ANYTHING
2499	 04572	0022  		^"R	/^R - LITERALLY
2500	 04573	0005  		^"E	/^E - RESERVED FOR EXTENSIONS
2501	 04574	7777  	SCHU,	-1	/^  - USE NEXT CHAR AS CONTROL CHARACTER	*ED	"^
2502					/SCHU MUST BE LAST AND MUST BE FOLLOWED BY A NEGATIVE NUMBER
2503	 04575	7746  	M32,	-32
	------
	 04577	0133  
2504		4600  		PAGE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 77
Cmd U                                            FILE # 1

2505			
2506			
2507			/DISPATCH TABLE FOR COMMAND INPUT
2508			
2509	 04600	0202  	COMTAB,	TBEL		/^G
2510	 04601	0261  		TCRLF		/CR
2511	 04602	0241  	RUBY,	ROCMND		/RUBOUT
2512	 04603	0243  		T2M1		/^Q *WM
2513	 04604	0243  		T2M1		/^S *WM
2514	 04605	3145  		TCTLU		/^U
2515	 04606	0266  		TALTM		/ALTMODE
2516	 04607	1450  		TSTAR		/*
2517	 04610	1447  		TSPACE		/SPACE
2518			
2519	 04611	0000  	CHKBZ,	0		/SEE THAT B .LE. C(AC) .LE. ZZ
2520	 04612	7430  		SZL
2521	 04613	5611  		JMP I	CHKBZ	/POP
2522	 04614	7041  		CIA		/ENTERED WITH LINK SET CORRECTLY
2523	 04615	1045  		TAD	ZZ
2524	 04616	7420  		SNL		/13-BIT ARITHMETIC
2525	 04617	5611  		JMP I	CHKBZ	/C(AC)>ZZ
2526	 04620	7041  		CIA
2527	 04621	1045  		TAD	ZZ	/RESTORE ORIGINAL AC
2528	 04622	2211  		ISZ	CHKBZ
2529	 04623	5611  		JMP I	CHKBZ
2530			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 78
Cmd U                                            FILE # 1

2531			
2532			
2533	 04624	0000  	SCUPPR,	0		/SCAN AND CONVERT TO UPPER CASE
2534	 04625	4517  		SCAN
2535	 04626	4542  		UPPERC
2536	 04627	5624  		JMP I	SCUPPR	/THAT'S ALL?
2537			
2538			/Q-REGISTER STORAGE - EACH Q-REGISTER TAKES 2 WORDS.
2539			/WD 1 CONTAINS THE LENGTH OF THE CHARACTER PART OF THE REGISTER (IF ANY)
2540			/WD 2 CONTAINS THE VALUE  OF THE NUMERIC PART OF THE REGISTER (IF ANY)
2541			
2542	 04630	0000  	QARRAY,	ZBLOCK	110	/36 Q-REGISTERS * 2 WORDS/REGISTER = 72 WORDS
2543	 04740	0000  	QPNTR,	0		/FAKE Q-REGISTER FOR INPUT LINE - LENGTH ONLY.
2544			
2545	 04741	0000  	OUNAM,	ZBLOCK	4	/NAME OF OPEN OUTPUT FILE GOES HERE
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-DEC-90  PAGE 79
Cmd U                                            FILE # 1

2546			
2547			
/50 OS/8 TECO VERSION 7 V50       MACREL-V2C  FRI 07-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  FRI 07-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  FRI 07-DEC-90  PAGE 80-2
SYMBOL TABLE

T6A	  0274			
UPNL	  0703			
UPOC	G 2740			
UPPERC	G 4542			
VBAR	G 0326			
VBARE	X ****			
VERSN	  0062			
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