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

PAGE	LINE	SUBTITLE

  6	 177	Cmd EB
  6	 210	Cmd EW
  7	 247	Cmd ER
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 1
                                                 FILE # 1

   1			/3 I/O OVERLAY FOR TECO V50
   2			
   3			/ 10-APR-79	TEST FOR : WASN'T RE-ENTRANT
   4			
   5				.EXTERNAL QOVRLC,EOVRLC,XOVRLC,FOVRLC
   6				.EXTERNAL QCHK,QUOTST,SORT,TSTSEP,ERR,UPPERC
   7				.ZTERNAL NAME,ZM10,Z6,SCHAR,Z77,Z200,NMT,NFLG
   8				.EXTERNAL GETUSR,PUSHJ,ECDISM
   9				.ZTERNAL ERROR,OUTR,R,EBFLG,OUTHND,ODEV
  10				.EXTERNAL OCNT,OMAXLN,OUNAM,DECPUT,OSETP,STECO1,STECO2,IBLK
  11				.ZTERNAL INHND,ICRCNT,REND,INRCNT,QPTR,ZIREST,CLNF
  12				.EXTERNAL POPJ,NNEW13
  13			
  14				.GLOBAL IOVRLY
  15				.GLOBAL CHR.EB,CHR.ER,CHR.EW
  16				.GLOBAL OUHNDL
  17			
  18		7326  		TWOO=CLA STL RTL
  19		7344  		MTWO=STA CLL RAL
  20		7760  		OSDCBT=7760		/OS/8 DEVICE CONTROL TABLE -  IN FIELD 1
  21			
  22				.ENABLE 7BIT
  23			
  24				.MACRO	.ERROR	ERNUM
  25				.GLOBAL ERR'ERNUM
  26			ERR'ERNUM:	ERR
  27				.ENDM
  28			
  29				.MACRO	.SORT	ARG1,ARG2
  30				SORT;	ARG1;	ARG2-ARG1
  31				.ENDM
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 2
                                                 FILE # 1

  32			
  33		0200  		.ASECT TECOVI
  34			
  35		3200  		*3200
  36			
  37	 03200	0000  	IOVRLY,	0
  38	 03201	0000 *		QOVRLC
  39	 03202	0000 *		EOVRLC
  40	 03203	0000 *		XOVRLC
  41	 03204	0000 *		FOVRLC
  42			
  43				/SUBROUTINE TO DO LOOKUPS AND ENTERS (LINK CRITICAL ON ENTRY)
  44			
  45	 03205	0000  	OPEN,	0		/CALLED WITH MONITOR CODE - 2 IN AC
  46	 03206	3321  		DCA	RSTSW	/ENTER OR LOOKUP
  47	 03207	7630  		SZL CLA		/IF THIS IS THE OUTPUT SIDE OF AN "EB" COMMAND,
  48	 03210	5310  		JMP	DEVLOD	/SKIP THE STATEMENT SCAN
  49	 03211	0000 *		QCHK
  50	 03212	1304  		TAD	DSKNAM	/PACKED SIXBIT FOR 'DSK:'
  51	 03213	3326  		DCA	DEVC
  52	 03214	1377  		TAD	(":	/RESTORE :
  53	 03215	3302  	NGOM1,	DCA	DEVCOL
  54	 03216	3000 *		DCA	NAME	/CLEAR NAME
  55	 03217	3001 *		DCA	NAME+1
  56	 03220	3002 *		DCA	NAME+2
  57	 03221	7344  		MTWO
  58	 03222	3351  		DCA	PERDSW
  59	 03223	3352  	NAMCM1,	DCA	NAMCNT
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 3
                                                 FILE # 1

  60			
  61	 03224	0000 *	NAMEC,	QUOTST		/GET CHAR AND TEST FOR ALTM
  62	 03225	5305  		JMP	DEVQOT	/ALTM - END OF NAME
  63				.SORT	DEVLST,DEVTAB	/CHECK SPECIAL CHARS ([,:. AND SPACE
  64	 03231	0000 *		TSTSEP		/NO, SEE IF ALPHANUMERIC
  65				.ERROR	08	/ILLEGAL CHAR
  66	 03233	1352  		TAD	NAMCNT
  67	 03234	1000 *		TAD	ZM10
  68	 03235	7700  		SMA CLA		/MORE THAN 6 CHARS?
  69	 03236	5224  		JMP	NAMEC	/YES, IGNORE
  70	 03237	1352  		TAD	NAMCNT	/NO, PACK IT
  71	 03240	1000 *		TAD	Z6	/*K* (ALSO *K*) NEW FOR SYMBIONT KLUDGE
  72	 03241	7110  		CLL RAR
  73	 03242	3345  		DCA	TEMP1	/*K* NOTE ASSUMPTION NAME STARTS AT LOC 3!
  74	 03243	1000 *		TAD	SCHAR
  75	 03244	0000 *		UPPERC		/** "UPPERC" ALWAYS COMPLEMENTS LINK
  76	 03245	0000 *		AND	Z77
  77	 03246	7420  		SNL
  78	 03247	5253  		JMP	2$
  79	 03250	7106  		CLL RTL
  80	 03251	7006  		RTL
  81	 03252	7006  		RTL
  82	 03253	1745  	2$:	TAD I	TEMP1
  83	 03254	3745  		DCA I	TEMP1
  84	 03255	2352  		ISZ	NAMCNT
  85	 03256	5224  		JMP	NAMEC
  86			
  87	 03257	2351  	PERD,	ISZ	PERDSW	/FOUND A PERIOD
  88	 03260	1000 *		TAD	NAME
  89	 03261	7650  		SNA CLA		/ERROR IF WE HAVE
  90	 03262	5232  		JMP	ERR08	/DOUBLE PERIODS OR NO FILE NAME
  91	 03263	3302  		DCA	DEVCOL	/DEVICE NO LONGER LEGAL
  92	 03264	3003 *		DCA	NAME+3	/ZERO EXTENSION OUT
  93	 03265	1000 *		TAD	Z6	/AND SET POINTER TO 6TH CHARACTER
  94	 03266	5223  		JMP	NAMCM1
  95			
  96	 03267	1001 *	COLON,	TAD	NAME+1
  97	 03270	7450  		SNA		/WE MUST PACK THE NAME INTO ONE WORD OURSELVES
  98	 03271	5276  		JMP	2$	/BECAUSE IF "OPEN" IS CALLED FROM THE OUTPUT
  99	 03272	1000 *		TAD	NAME	/SIDE OF AN "EB" COMMAND, WE SKIP
 100	 03273	7700  		SMA CLA		/THE NAME COLLECTOR.(WITH GOOD REASON -
 101	 03274	7130  		CLL CML RAR	/THE USR OVERLAYS THE COMMAND LINE).
 102	 03275	1001 *		TAD	NAME+1	/SINCE THE OS/8 "ASSIGN" CALL TO THE USR
 103	 03276	1000 *	2$:	TAD	NAME	/REPLACES THE 2ND NAME WORD WITH THE DEVICE
 104	 03277	3326  		DCA	DEVC	/NUMBER, ALL NAME INFO MUST BE HELD IN WORD 1.
 105	 03300	5215  		JMP	NGOM1	/DEVICE NAME STORED - RESET FOR FILE NAME
 106			
 107	 03301	0056  	DEVLST,	".
 108	 03302	0072  	DEVCOL,	":		/CHANGED TO 0 AFTER FIRST : FOUND
 109	 03303	0057  		"/
 110	 03304	5723  	DSKNAM,	5723		/=0423+1300+4000 - SERVES AS LIST TERMINATOR
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 4
                                                 FILE # 1

 111			
 112	 03305	2351  	DEVQOT,	ISZ	PERDSW	/IF WE NEVER SAW A PERIOD,
 113	 03306	3003 *		DCA	NAME+3	/WIPE OUT THE EXTENSION
 114	 03307	4776  		JMS I	(GETUSR	/BRING USR INTO CORE
 115			
 116	 03310	1605  	DEVLOD,	TAD I	OPEN	/MOVE HANDLER ADDRESS
 117	 03311	3330  		DCA	DEVHND
 118	 03312	2205  		ISZ	OPEN	/AND BUMP POINTER
 119	 03313	7326  		TWOO
 120	 03314	1321  		TAD	RSTSW
 121	 03315	3343  		DCA	CODE	/ENTER OR LOOKUP
 122	 03316	6212  		CIF 10		/AND RESET TABLES
 123	 03317	4400 *		JMS I	Z200
 124	 03320	0013  		13
 125	 03321	0000  	RSTSW,	0		/DON'T ZAP OPEN FILES ON INPUT
 126						/0 IS LOOKUP, 2 IS ENTER
 127	 03322	3327  		DCA	DEVNO	/ZERO SECOND NAME WORD
 128	 03323	6212  		CIF 10
 129	 03324	4400 *		JMS I	Z200
 130	 03325	0001  		1		/ASSIGN HANDLER
 131	 03326	0000  	DEVC,	0
 132	 03327	0000  	DEVNO,	0
 133	 03330	0000  	DEVHND,	0
 134	 03331	5353  		JMP	OPNERR	/ERROR - KICK USR OUT FIRST
 135	 03332	1375  		TAD	(3	/*K* SAVED MANY LOCATIONS WHEN NAME HAD TO BE AT 0!
 136	 03333	3344  		DCA	STBLK
 137	 03334	1321  		TAD	RSTSW	/GET LOOKUP-ENTER SWITCH
 138	 03335	1000 *		TAD	NAME	/IF NAME IS NULL AND THIS IS A LOOKUP,
 139	 03336	7650  		SNA CLA
 140	 03337	5347  		JMP	OPSUCC	/IT JUST SUCCEEDED
 141	 03340	1327  		TAD	DEVNO	/DEVICE #
 142	 03341	6212  		CIF 10
 143	 03342	4400 *		JMS I	Z200
 144	 03343	0000  	CODE,	0		/ENTER OR LOOKUP
 145	 03344	0000  	STBLK,	0		/FILLED WITH STARTING BLOCK
 146			TEMP1,
 147	 03345	0000  	FLN,	0		/FILLED WITH -LENGTH
 148			/**** CHECK IF AC MUST = 0
 149	 03346	5353  		JMP 	OPNERR	/ERROR
 150	 03347	1330  	OPSUCC,	TAD	DEVHND	/HANDLER ADDRESS IN AC
 151	 03350	5605  		JMP I	OPEN
 152	 03351	7777  	PERDSW,	7777		/FLIP FLOP FOR EXTENSION
 153	 03352	0000  	NAMCNT,	0		/CHARACTER COUNT
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 5
                                                 FILE # 1

 154			
 155	 03353	1321  	OPNERR,	TAD	RSTSW	/WE SHOULD ONLY KILL THE OUTPUT FILE
 156	 03354	7650  		SNA CLA
 157	 03355	5363  		JMP	LUKERR	/IF THIS IS AN OUTPUT ERROR
 158	 03356	1000 *	EBERR,	TAD	ERROR
 159	 03357	3000 *		DCA	OUTR
 160	 03360	0000 *	DISERR,	PUSHJ
 161	 03361	0000 *	PECDSM,	ECDISM		/DISMISS THE USR
 162				.ERROR	16
 163			
 164	 03363	3000 *	LUKERR,	DCA	NMT
 165	 03364	0000 *		PUSHJ
 166	 03365	3516  			ERVAL
 167	 03366	1000 *		TAD	NFLG	/SEE IF NUMBER WAS CREATED
 168	 03367	7700  		SMA CLA
 169	 03370	5360  		JMP	DISERR	/NO, GIVE ERROR MESSAGE
 170	 03371	5761  		JMP I	PECDSM	/YES, RETURN VALUE
 171			
 172	 03372	3257  	DEVTAB,	PERD		/.
 173	 03373	3267  		COLON		/:
 174	 03374	3525  		SWITCH		//
	------
	 03375	0003  
	 03376	0000 *
	 03377	0072  
 175		3400  		PAGE
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 6
                                                 FILE # 1

 176			
 177				.SBTTL	Cmd EB
 178			
 179	 03400	7340  	CHR.EB,	CLA CMA CLL	/"EDIT BACKUP" COMMAND WITH LINK CLEAR
 180	 03401	0000 *		PUSHJ		/USE 'ROPEN' TO SET POINTERS
 181	 03402	3467  			CHR.ER	/WITHOUT KICKING OUT THE USR (AC=-1 ON ENTRY)
 182	 03403	1777  		TAD I	(DEVNO	/DEVICE #
 183	 03404	1376  		TAD	(OSDCBT-1
 184	 03405	3000 *		DCA	R
 185	 03406	6211  		CDF 10
 186	 03407	1400 *		TAD I	R	/GET DEVICE CODE FROM DCB TABLE
 187	 03410	6201  		CDF
 188	 03411	7700  		SMA CLA		/NEGATIVE IF FILE-STRUCTURED
 189	 03412	5775  		JMP I	(EBERR	/YOU CAN'T DO THAT!
 190	 03413	1003 *		TAD	NAME+3	/EXTENSION
 191	 03414	1374  		TAD	(-'BK
 192	 03415	7450  	KSNA,	SNA
 193	 03416	5775  		JMP I	(EBERR	/CAN'T EB A .BK FILE
 194	 03417	1231  		TAD	DOTBK	/RESTORE EXTENSION
 195	 03420	3000 *		DCA	R	/SAVE IT
 196	 03421	1231  		TAD	DOTBK	/.BK EXTENSION
 197	 03422	3003 *		DCA	NAME+3
 198	 03423	6212  		CIF 10
 199	 03424	1777  		TAD I	(DEVNO	/DEVICE #
 200	 03425	4400 *		JMS I	Z200	/DELETE THE OLD BACKUP
 201	 03426	0004  		4
 202	 03427	0000 *		NAME
 203	 03430	0000  		0
 204	 03431	0213  	DOTBK,	'BK		/WHO CARES IF IT'S NOT THERE?
 205	 03432	1000 *		TAD	R	/OLD EXTENSION
 206	 03433	3003 *		DCA	NAME+3
 207	 03434	7321  		CLA STL IAC	/SET EDIT BACKUP FLAG AND DO AN "ENTER"
 208	 03435	7410  		SKP		/LINK MUST BE SET HERE FOR OPEN
 209			
 210				.SBTTL	Cmd EW
 211			
 212	 03436	7100  	CHR.EW,	CLL
 213	 03437	3000 *		DCA	EBFLG	/LINK NORMALLY 0 WHEN GOTTEN HERE
 214			/	RAL
 215			/	DCA T$
 216			/	TAD	OUTR
 217			/	CIA
 218			/	TAD	ERROR
 219			/	SZA CLA
 220			/	.ERROR 38	/?OFO
 221			/	TAD	T$
 222			/	RAR
 223	 03440	7201  		CLA IAC		/OPEN OUTPUT FILE
 224	 03441	4773  		JMS I	(OPEN	/ENTER CODE IN AC
 225	 03442	4001  	OUHNDL,		4001	/HANDLER ADDRESS
 226	 03443	3000 *		DCA	OUTHND	/HANDLER ENTRY
 227	 03444	1777  		TAD I	(DEVNO
 228	 03445	3000 *		DCA	ODEV	/SAVE DEV #
 229	 03446	3772  		DCA I	(OCNT	/CLEAR BLOCK COUNT
 230	 03447	1771  		TAD I	(FLN
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 6-1
Cmd EW                                           FILE # 1

 231	 03450	3770  		DCA I	(OMAXLN	/MAXIMUM FILE LENGTH
 232	 03451	1000 *		TAD	NAME
 233	 03452	3767  		DCA I	(OUNAM
 234	 03453	1001 *		TAD	NAME+1
 235	 03454	3766  		DCA I	(OUNAM+1
 236	 03455	1002 *		TAD	NAME+2
 237	 03456	3765  		DCA I	(OUNAM+2
 238	 03457	1003 *		TAD	NAME+3
 239	 03460	3764  		DCA I	(OUNAM+3
 240	 03461	1363  		TAD	(DECPUT
 241	 03462	3000 *		DCA	OUTR	/ENABLE CHARACTER OUTPUT ROUTINE
 242	 03463	1362  		TAD	(ECDISM
 243	 03464	3763  		DCA I	(DECPUT	/FAKE RETURN FROM CHAR I/O ROUTINE
 244	 03465	1761  		TAD I	(STBLK
 245	 03466	5760  		JMP I	(OSETP
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 7
Cmd EW                                           FILE # 1

 246			
 247				.SBTTL	Cmd ER
 248			
 249	 03467	3000 *	CHR.ER,	DCA	QPTR	/ENTERED WITH AC=-1 IF MONITOR IS TO BE KEPT
 250	 03470	1357  		TAD	(SNL
 251	 03471	3756  		DCA I	(STECO1
 252	 03472	1215  		TAD	KSNA
 253	 03473	3755  		DCA I	(STECO2
 254	 03474	7340  		CLL STA
 255	 03475	3000 *		DCA	NMT
 256	 03476	4773  		JMS I	(OPEN	/LOOKUP CODE IN AC
 257	 03477	7201  	INHNDL,		7201	/HANDLER ADDRESS
 258	 03500	3000 *		DCA	INHND	/SAVE HANDLER ENTRY
 259	 03501	7240  		STA
 260	 03502	3000 *		DCA	ICRCNT	/POINTER
 261	 03503	7240  		STA
 262	 03504	3000 *		DCA	REND	/CLEAR END-OF-FILE FLAG
 263	 03505	1761  		TAD I	(STBLK
 264	 03506	3754  		DCA I	(IBLK	/FIRST BLOCK
 265	 03507	1771  		TAD I	(FLN
 266	 03510	3000 *		DCA	INRCNT	/SET UP INPUT FILE LENGTH
 267	 03511	0000 *		PUSHJ
 268	 03512	3516  			ERVAL
 269	 03513	2000 *		ISZ	QPTR	/SHOULD WE DISMISS THE MONITOR?
 270	 03514	5762  		JMP I	(ECDISM	/YES - KICK THE USR OUT AND POPJ
 271	 03515	5400 *		JMP I	ZIREST	/EXIT
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 8
Cmd ER                                           FILE # 1

 272			
 273	 03516	2000 *	ERVAL,	ISZ	CLNF	/WAS THERE A : ON ER OR EB?
 274	 03517	7410  	LSKIP,	SKP		/NO
 275	 03520	5323  		JMP	MAKNUM	/YES
 276	 03521	3000 *		DCA	CLNF	/RESET COLON FLAG
 277	 03522	0000 *		POPJ
 278	 03523	1000 *	MAKNUM,	TAD	NMT
 279	 03524	5753  		JMP I	(NNEW13
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 9
Cmd ER                                           FILE # 1

 280			
 281	 03525	0000 *	SWITCH,	QUOTST
 282	 03526	7610  	SKPCLA,	SKP!CLA		/FILENAME ENDS WITH SLASH
 283	 03527	0000 *		UPPERC
 284	 03530	1352  		TAD	(-"S
 285	 03531	7640  		SZA CLA
 286				.ERROR	28	/UNDEFINED I/O SWITCH
 287	 03533	1326  		TAD	SKPCLA
 288	 03534	3756  		DCA I	(STECO1
 289	 03535	1317  		TAD	LSKIP
 290	 03536	3755  		DCA I	(STECO2
 291	 03537	5751  		JMP I	(NAMEC
	------
	 03551	3224  
	 03552	7655  
	 03553	0000 *
	 03554	0000 *
	 03555	0000 *
	 03556	0000 *
	 03557	7420  
	 03560	0000 *
	 03561	3344  
	 03562	0000 *
	 03563	0000 *
	 03564	0003 *
	 03565	0002 *
	 03566	0001 *
	 03567	0000 *
	 03570	0000 *
	 03571	3345  
	 03572	0000 *
	 03573	3205  
	 03574	7565  
	 03575	3356  
	 03576	7757  
	 03577	3327  
 292		3600  		PAGE
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 10
Cmd ER                                           FILE # 1

 293			
/3 I/O OVERLAY FOR TECO V50       MACREL-V2C  FRI 07-DEC-90  PAGE 11
SYMBOL TABLE

CHR.EB	G 3400			OPEN	  3205			
CHR.ER	G 3467			OPNERR	  3353			
CHR.EW	G 3436			OPSUCC	  3347			
CLNF	Z 0***			OSDCBT	  7760			
CODE	  3343			OSETP	X ****			
COLON	  3267			OUHNDL	G 3442			
DECPUT	X ****			OUNAM	X ****			
DEVC	  3326			OUTHND	Z 0***			
DEVCOL	  3302			OUTR	Z 0***			
DEVHND	  3330			PECDSM	  3361			
DEVLOD	  3310			PERD	  3257			
DEVLST	  3301			PERDSW	  3351			
DEVNO	  3327			POPJ	X ****			
DEVQOT	  3305			PUSHJ	X ****			
DEVTAB	  3372			QCHK	X ****			
DISERR	  3360			QOVRLC	X ****			
DOTBK	  3431			QPTR	Z 0***			
DSKNAM	  3304			QUOTST	X ****			
EBERR	  3356			R	Z 0***			
EBFLG	Z 0***			REND	Z 0***			
ECDISM	X ****			RSTSW	  3321			
EOVRLC	X ****			SCHAR	Z 0***			
ERR	X ****			SKPCLA	  3526			
ERROR	Z 0***			SORT	X ****			
ERR08	G 3232			STBLK	  3344			
ERR16	G 3362			STECO1	X ****			
ERR28	G 3532			STECO2	X ****			
ERVAL	  3516			SWITCH	  3525			
FLD: 0	  0200  ASECT		TECOVI	  3600  ASECT		
FLN	  3345			TEMP1	  3345			
FOVRLC	X ****			TSTSEP	X ****			
GETUSR	X ****			TWOO	  7326			
IBLK	X ****			UPPERC	X ****			
ICRCNT	Z 0***			XOVRLC	X ****			
INHND	Z 0***			ZIREST	Z 0***			
INHNDL	  3477			ZM10	Z 0***			
INRCNT	Z 0***			Z200	Z 0***			
IOVRLY	G 3200			Z6	Z 0***			
KSNA	  3415			Z77	Z 0***			
LSKIP	  3517			.ERROR	M 0000			
LUKERR	  3363			.SORT	M 0000			
MAKNUM	  3523			
MTWO	  7344			
NAMCM1	  3223			
NAMCNT	  3352			
NAME	Z 0***			
NAMEC	  3224			
NFLG	Z 0***			
NGOM1	  3215			
NMT	Z 0***			
NNEW13	X ****			
OCNT	X ****			
ODEV	Z 0***			
OMAXLN	X ****