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

PAGE	LINE	SUBTITLE

  2	  45	Cmd EU
  2	  46	Cmd ET
  2	  47	Cmd ES
  2	  48	Cmd EO
  2	  49	Cmd EH
  2	  50	Cmd ED
  6	 220	Cmd =
  6	 245	Cmd \
  6	 246	Cmd |
  8	 292	Cmd ^D
  8	 294	Cmd ^O
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 1
                                                 FILE # 1

   1			/3 F-OVERLAY TO TECO V50
   2			
   3			/ 08-APR-79	FIXED READ WITH NO WAIT BUG WITH ECHO OFF
   4			/		ADDED ELSE PROCESSING
   5			
   6				.ENABLE 7BIT
   7			
   8				.MACRO	.ERROR	ERNUM
   9				.GLOBAL ERR'ERNUM
  10			ERR'ERNUM:	ERR
  11				.ENDM
  12			
  13				.MACRO	.SORT	ARG1,ARG2
  14				SORT;	ARG1;	ARG2-ARG1
  15				.ENDM
  16			
  17		7346  		MTHREE=CLL STA RTL
  18			
  19				.EXTERNAL IOVRLC,QOVRLC,EOVRLC,XOVRLC
  20				.EXTERNAL EDFLAG,ETFLAG
  21				.EXTERNAL NCHK,POPJ,NNEW13,NMRBAS,POPJ,ERR,CRLF
  22				.ZTERNAL N,Z40,NP,Z4,RADIX,NLINK,DVT1,LASTC
  23				.ZTERNAL CLNF,ZZ,P,Z12,Z377,M,CFLG,SCHAR
  24				.EXTERNAL EU1,EU2,KTYPE,PUTT,TYPE,ET1,ET8,SCHU,YSKP,EH4,TQMK,T0
  25				.EXTERNAL MQLDVI,NCHK,POKE,SCAN,TPUT,UPOC
  26				.EXTERNAL NMBR2,PUSHJ,CMIN,VBAR
  27			
  28				.GLOBAL FOVRLY
  29				.GLOBAL CTL.D,CTL.O,CBSL,CEQL
  30				.GLOBAL DRAD
  31				.GLOBAL CHR.ED,CHR.EH,CHR.EO,CHR.ES,CHR.ET,CHR.EU
  32			
  33		0200  		.ASECT TECOVF
  34			
  35		7200  		*7200
  36			
  37		7200  		RELOC 3200
  38			
  39	 03200*	0000 *		IOVRLC
  40	 03201*	0000 *		QOVRLC
  41	 03202*	0000 *		EOVRLC
  42	 03203*	0000 *		XOVRLC
  43	 03204*	0000  	FOVRLY,	0
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 2
                                                 FILE # 1

  44			
  45				.SBTTL	Cmd EU
  46				.SBTTL	Cmd ET
  47				.SBTTL	Cmd ES
  48				.SBTTL	Cmd EO
  49				.SBTTL	Cmd EH
  50				.SBTTL	Cmd ED
  51			
  52	 03205*	7001  	CHR.EU,	IAC
  53	 03206*	7001  	CHR.ET,	IAC
  54	 03207*	7001  	CHR.ES,	IAC
  55	 03210*	7001  	CHR.EO,	IAC
  56	 03211*	7001  	CHR.EH,	IAC
  57	 03212*	1377  	CHR.ED,	TAD	(EDFLAG	/*K* FLAGS MUST BE CONSECUTIVE FOR MORE REASONS THAN 1
  58	 03213*	3302  		DCA	XXFLAG
  59	 03214*	1000 *		TAD	N
  60	 03215*	7421  		MQL		/*WM SORRY
  61	 03216*	0000 *		NCHK		/ANY ARGUMENT?
  62	 03217*	5265  		JMP	9$	/NO, RETURN VALUE
  63	 03220*	2000 *		ISZ	CFLG	/WERE 2 ARGUMENTS SPECIFIED?
  64	 03221*	5225  		JMP	8$	/NO
  65	 03222*	1000 *		TAD	M	/YES
  66	 03223*	7040  		CMA
  67	 03224*	0702  		AND I	XXFLAG	/TURN OFF BITS SPECIFIED BY M
  68	 03225*	7501  	8$:	MQA		/OR IN N VALUE
  69	 03226*	3702  		DCA I	XXFLAG	/SET NEW VALUE
  70	 03227*	3000 *		DCA	CFLG
  71	 03230*	1302  		TAD	XXFLAG
  72	 03231*	1276  		TAD	XX$
  73	 03232*	3277  		DCA	PTR$
  74	 03233*	1677  		TAD I	PTR$
  75	 03234*	3277  		DCA	PTR$
  76	 03235*	1677  	L$:	TAD I	PTR$
  77	 03236*	7450  		SNA
  78	 03237*	5267  		JMP	E$	/DONE, RETURN TO SET MULTI8 ECHO
  79	 03240*	3301  		DCA	MASK$	/SAVE MASK
  80	 03241*	2277  		ISZ	PTR$
  81	 03242*	1677  		TAD I	PTR$
  82	 03243*	3252  		DCA	1$	/SAVE SKIP CONDITION
  83	 03244*	2277  		ISZ	PTR$
  84	 03245*	1677  		TAD I	PTR$
  85	 03246*	3300  		DCA	LOC$	/SAVE LOC TO CHANGE
  86	 03247*	2277  		ISZ	PTR$
  87	 03250*	1702  		TAD I	XXFLAG	/LOOK AT FLAG
  88	 03251*	0301  		AND	MASK$	/'AND' WITH MASK
  89	 03252*	7402  	1$:	HLT		/SKIP INSTRUCTION
  90	 03253*	5261  		JMP	3$
  91	 03254*	1677  		TAD I	PTR$
  92	 03255*	3700  		DCA I	LOC$
  93	 03256*	2277  		ISZ	PTR$
  94	 03257*	2277  	2$:	ISZ	PTR$
  95	 03260*	5235  		JMP	L$
  96	 03261*	2277  	3$:	ISZ	PTR$
  97	 03262*	1677  		TAD I	PTR$
  98	 03263*	3700  		DCA I	LOC$
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 2-1
Cmd ED                                           FILE # 1

  99	 03264*	5257  		JMP	2$
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 3
Cmd ED                                           FILE # 1

 100			
 101	 03265*	1702  	9$:	TAD I	XXFLAG	/GET VALUE
 102	 03266*	5776  		JMP I	(NNEW13	/MAKE NEW 13-BIT VALUE
 103	 03267*	1775  	E$:	TAD I	(ETFLAG
 104	 03270*	0330  		AND	MSK10	/WAS NO ECHO SET ?
 105	 03271*	7112  		CLL RTR		/IF ET CHANGED, ALWAYS AFFECT MULTI8
 106	 03272*	7450  		SNA
 107	 03273*	7325  		CLA STL IAC RAL	/NO, GIOT 3: ENABLE ECHO
 108	 03274*	6770  		6770		/YES, GIOT 2: DISABLE ECHO
 109	 03275*	0000 *		POPJ
 110			
 111	 03276*	**** *	XX$:	-EDFLAG+XXSUBS
 112	 03277*	0000  	PTR$:	0
 113	 03300*	0000  	LOC$:	0
 114	 03301*	0000  	MASK$:	0
 115			
 116	 03302*	0000  	XXFLAG,	0		/POINTS TO FLAG IN MEMORY ABOVE 4000
 117			
 118				.NOLIST BE
 119			
 120			/	MASK;	SKIP;		LOC;	VALUE IF SKIPS;	VALUE IF NO SKIP
 121			
 122	 03303*	7777  	EUSUB,	7777;	SMA CLA;	EU1;	CLA;		SNA CLA
 123	 03310*	7777  		7777;	SPA SNA CLA;	EU2;	TAD Z40;	NOP
 124	 03315*	0000  		0
 125			
 126	 03316*	0001  	ETSUB,	1;	SNA CLA;	KTYPE;	PUTT;		TYPE
 127	 03323*	0001  		1;	SNA CLA;	ET1;	PUTT;		TYPE
 128	 03330*	0010  	MSK10,	10;	SNA CLA;	ET8;	DCA SCHAR;	TYPE
 129	 03335*	0000  		0
 130			
 131	 03336*	0001  	EDSUB,	1;	SNA CLA;	SCHU;	-1;		"^
 132	 03343*	0002  		2;	SNA CLA;	YSKP;	SKP CLA;	SZA CLA
 133	 03350*	0000  		0
 134			
 135	 03351*	0004  	EHSUB,	4;	SNA CLA;	EH4;	TQMK;		T0
 136			CXSUB,
 137			EVSUB,
 138			ESSUB,
 139	 03356*	0000  	EOSUB,	0
 140			
 141				.LIST BE
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 4
Cmd ED                                           FILE # 1

 142			
 143			/RADIX TABLES:
 144			/MUST BE IN SAME OVERLAY AS = AND ^O AND ^D
 145			
 146	 03357*	7000  	ORAD,	NOP
 147	 03360*	1000  		1000
 148	 03361*	0100  		100
 149	 03362*	0010  		10
 150	 03363*	**** *	DRAD,	NP&177+1200	/TAD NP
 151	 03364*	1750  		1000.
 152	 03365*	0144  		100.
 153	 03366*	0012  		10.
 154			
 155	 03367*	3336  	XXSUBS,	EDSUB
 156	 03370*	3351  		EHSUB
 157	 03371*	3356  		EOSUB
 158	 03372*	3356  		ESSUB
 159	 03373*	3316  		ETSUB
 160	 03374*	3303  		EUSUB
 161			/	EVSUB
 162			/	CXSUB
 163			/MUST ALL BE TOGETHER IN SAME OVERLAY
 164			
	------
	 03375*	0000 *
	 03376*	0000 *
	 03377*	0000 *
 165		7400  		PAGE
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 5
Cmd ED                                           FILE # 1

 166			
 167			/NUMERICAL OUTPUT ROUTINE
 168			
 169	 03400*	0000  	ZEROD,	0
 170	 03401*	3256  		DCA	ZER$	/INITIALIZE "LEADING ZEROS" FLAG
 171	 03402*	1600  		TAD I	ZEROD
 172	 03403*	2200  		ISZ	ZEROD
 173	 03404*	3255  		DCA	DEV$	/SAVE OUTPUT ROUTINE ADDRESS
 174	 03405*	1000 *		TAD	NLINK	/POS OR NEGATIVE?
 175	 03406*	7650  		SNA CLA
 176	 03407*	5224  		JMP	2$	/POSITIVE
 177	 03410*	1377  		TAD	(ORAD
 178	 03411*	7041  		CIA
 179	 03412*	1000 *		TAD	RADIX
 180	 03413*	7650  		SNA CLA
 181	 03414*	5221  		JMP	1$	/OCTAL
 182	 03415*	1000 *		TAD	N	/DECIMAL
 183	 03416*	7041  		CIA
 184	 03417*	3000 *		DCA	N	/NEGATE
 185	 03420*	7410  		SKP
 186	 03421*	1000 *	1$:	TAD	Z4	/CONVERT - TO 1
 187	 03422*	1376  		TAD	("-
 188	 03423*	4655  		JMS I	DEV$	/OUTPUT MINUS SIGN
 189	 03424*	7346  	2$:	MTHREE
 190	 03425*	3257  		DCA	CNT$	/ITERATION COUNT
 191	 03426*	1000 *		TAD	RADIX
 192	 03427*	3260  		DCA	R$
 193	 03430*	2260  	3$:	ISZ	R$
 194	 03431*	1660  		TAD I	R$
 195	 03432*	3235  		DCA	4$	/GET DIVISOR
 196	 03433*	1000 *		TAD	N
 197	 03434*	0000 *		MQLDVI		/DIVIDE BY A POWER OF THE BASE
 198	 03435*	0000  	4$:	0
 199	 03436*	1256  		TAD	ZER$
 200	 03437*	7450  		SNA
 201	 03440*	5245  		JMP	5$	/IGNORE LEADING ZEROS
 202	 03441*	1375  		TAD	("0
 203	 03442*	4655  		JMS I	DEV$
 204	 03443*	7130  		STL RAR
 205	 03444*	3256  		DCA	ZER$	/SET LEADING ZEROS FLAG
 206	 03445*	1000 *	5$:	TAD	DVT1	/GET REMAINDER
 207	 03446*	3000 *		DCA	N
 208	 03447*	2257  		ISZ	CNT$	/GO AROUND AGAIN?
 209	 03450*	5230  		JMP	3$	/WHY NOT?
 210	 03451*	1000 *		TAD	N
 211	 03452*	1375  		TAD	("0
 212	 03453*	4655  		JMS I	DEV$	/OUTPUT LAST DIGIT NO MATTER WHAT
 213	 03454*	5600  		JMP I	ZEROD
 214			
 215	 03455*	0000  	DEV$:	0		/WHERE WE'RE SENDING THE DIGITS
 216	 03456*	0000  	ZER$:	0
 217	 03457*	0000  	CNT$:	0
 218	 03460*	0000  	R$:	0
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 6
Cmd ED                                           FILE # 1

 219			
 220				.SBTTL	Cmd =
 221			
 222	 03461*	0000 *	CEQL,	NCHK		/COMMAND =
 223				.ERROR	21	/NO NUMBER
 224	 03463*	1000 *		TAD	RADIX
 225	 03464*	3306  		DCA	TMP$
 226	 03465*	4774  		JMS I	(POKE	/LOOK AHEAD ONE CHARACTER
 227	 03466*	1373  		TAD	(-"=	/CHECK FOR = SIGN
 228	 03467*	7640  		SZA CLA
 229	 03470*	5273  		JMP 	1$	/SINGLE =
 230	 03471*	0000 *		SCAN		/DOUBLE = (PASS UP SECOND ONE)
 231	 03472*	7610  		SKP CLA		/CLEAR AC
 232	 03473*	1000 *	1$:	TAD	Z4
 233	 03474*	1377  		TAD	(ORAD
 234	 03475*	3000 *		DCA	RADIX	/SET OCTAL RADIX TEMPORARILY
 235	 03476*	4200  		JMS	ZEROD
 236	 03477*	0000 *		TPUT
 237	 03500*	1306  		TAD	TMP$
 238	 03501*	3000 *		DCA	RADIX	/RESTORE ORIGINAL RADIX
 239	 03502*	2000 *		ISZ	CLNF	/: SEEN?
 240	 03503*	0000 *		CRLF		/NO, END WITH CRLF
 241	 03504*	3000 *		DCA	CLNF
 242	 03505*	0000 *		POPJ
 243	 03506*	0000  	TMP$:	0
 244			
 245				.SBTTL	Cmd \
 246				.SBTTL	Cmd |
 247			
 248	 03507*	1000 *	CBSL,	TAD	LASTC	/GET CHARACTER BEFORE IT WAS TRANSLATED TO UPPER CASE
 249	 03510*	0000 *		AND	Z40	/SEE IF IT WAS \ OR | (VERICAL BAR)
 250	 03511*	7640  		SZA CLA
 251	 03512*	5772  		JMP I	(VBAR	/COMMAND | (VERTICAL BAR)
 252	 03513*	0000 *		NCHK		/COMMAND \ (BACKSLASH)
 253	 03514*	5320  		JMP	CBSN
 254	 03515*	4200  		JMS	ZEROD
 255	 03516*	0000 *		UPOC
 256	 03517*	0000 *		POPJ
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 7
Cmd |                                            FILE # 1

 257			
 258	 03520*	0000 *	CBSN,	PUSHJ
 259	 03521*	0000 *			NMBR2	/INITIALIZE RESULT TO 0
 260	 03522*	4345  		JMS	PTCH
 261	 03523*	1371  		TAD	(-"-	/CHECK FOR MINUS SIGN
 262	 03524*	7440  		SZA
 263	 03525*	5330  		JMP	.+3	/NOT MINUS
 264	 03526*	0000 *		PUSHJ
 265	 03527*	0000 *			CMIN	/RECORD MINUS SIGN
 266	 03530*	7041  		CIA
 267	 03531*	7112  		CLL RTR
 268	 03532*	7650  		SNA CLA		/CHECK FOR PLUS SIGN
 269	 03533*	2000 *	L$:	ISZ	P	/BUMP POINTER PAST SIGN
 270	 03534*	4345  		JMS	PTCH
 271	 03535*	1370  		TAD	(-72
 272	 03536*	7100  		CLL
 273	 03537*	1000 *		TAD	Z12
 274	 03540*	7420  		SNL		/IS IT A DIGIT?
 275	 03541*	0000 *		POPJ		/NO
 276	 03542*	0000 *		PUSHJ
 277	 03543*	0000 *			NMBR2	/YES - ACCUMULATE IT
 278	 03544*	5333  		JMP	L$	/AND LOOP
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 8
Cmd |                                            FILE # 1

 279			
 280	 03545*	0000  	PTCH,	0
 281	 03546*	1000 *		TAD P		/V3C
 282	 03547*	7161  		STL CIA		/CHECK FOR END OF BUFFER
 283	 03550*	1000 *		TAD ZZ
 284	 03551*	7670  		SZL SNA CLA
 285	 03552*	0000 *		POPJ
 286	 03553*	6211  		CDF 10
 287	 03554*	1400 *		TAD I	P	/GET A CHAR
 288	 03555*	0000 *		AND	Z377
 289	 03556*	6201  		CDF	0
 290	 03557*	5745  		JMP I PTCH
 291			
 292				.SBTTL	Cmd ^D
 293			
 294				.SBTTL	Cmd ^O
 295			
 296	 03560*	1000 *	CTL.D,	TAD	Z4	/SET RADIX DECIMAL
 297	 03561*	1377  	CTL.O,	TAD	(ORAD	/SET RADIX OCTAL
 298	 03562*	3000 *		DCA	RADIX
 299	 03563*	1400 *		TAD I	RADIX
 300	 03564*	3767  		DCA I	(NMRBAS	/EITHER "NOP"(8) OR "TAD NP"(10)
 301	 03565*	0000 *		POPJ
 302			
	------
	 03567*	0000 *
	 03570*	7706  
	 03571*	7723  
	 03572*	0000 *
	 03573*	7703  
	 03574*	0000 *
	 03575*	0060  
	 03576*	0055  
	 03577*	3357  
 303		7600  		PAGE
 304		7600  		RELOC
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 9
Cmd ^O                                           FILE # 1

 305			
/3 F-OVERLAY TO TECO V50          MACREL-V2C  FRI 07-DEC-90  PAGE 10
SYMBOL TABLE

CBSL	G 3507			POPJ	X ****			
CBSN	  3520			PTCH	  3545			
CEQL	G 3461			PUSHJ	X ****			
CFLG	Z 0***			PUTT	X ****			
CHR.ED	G 3212			QOVRLC	X ****			
CHR.EH	G 3211			RADIX	Z 0***			
CHR.EO	G 3210			SCAN	X ****			
CHR.ES	G 3207			SCHAR	Z 0***			
CHR.ET	G 3206			SCHU	X ****			
CHR.EU	G 3205			TECOVF	  7600  ASECT		
CLNF	Z 0***			TPUT	X ****			
CMIN	X ****			TQMK	X ****			
CRLF	X ****			TYPE	X ****			
CTL.D	G 3560			T0	X ****			
CTL.O	G 3561			UPOC	X ****			
CXSUB	  3356			VBAR	X ****			
DRAD	G 3363			XOVRLC	X ****			
DVT1	Z 0***			XXFLAG	  3302			
EDFLAG	X ****			XXSUBS	  3367			
EDSUB	  3336			YSKP	X ****			
EHSUB	  3351			ZEROD	  3400			
EH4	X ****			ZZ	Z 0***			
EOSUB	  3356			Z12	Z 0***			
EOVRLC	X ****			Z377	Z 0***			
ERR	X ****			Z4	Z 0***			
ERR21	G 3462			Z40	Z 0***			
ESSUB	  3356			.ERROR	M 0000			
ETFLAG	X ****			.SORT	M 0000			
ETSUB	  3316			
ET1	X ****			
ET8	X ****			
EUSUB	  3303			
EU1	X ****			
EU2	X ****			
EVSUB	  3356			
FLD: 0	  0200  ASECT		
FOVRLY	G 3204			
IOVRLC	X ****			
KTYPE	X ****			
LASTC	Z 0***			
M	Z 0***			
MQLDVI	X ****			
MSK10	  3330			
MTHREE	  7346			
N	Z 0***			
NCHK	X ****			
NLINK	Z 0***			
NMBR2	X ****			
NMRBAS	X ****			
NNEW13	X ****			
NP	Z 0***			
ORAD	  3357			
P	Z 0***			
POKE	X ****