File: LPSS.LS of Disk: V50/Init/Build-Init
(Source file text) 


/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 1

		/LPSS SET LPT HANDLER V50
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/COPYRIGHT  (C)  1980   BY DATAPLAN GMBH, LAUDA, BRD
		/		 AND 2015 W. VAN DER MARK
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
		/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DATAPLAN GMBH.
		/DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR
		/IN THIS DOCUMENT.
		/
		/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
		/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
		/(WITH INCLUSION OF DATAPLAN'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
		/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DATAPLAN.
		/
		/DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
		/OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DATAPLAN.
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/W.V.D.MARK, DP CONSULTING, ZUERICH, SWITZERLAND
		/1-JAN-80

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 2


	0030		LPVERSION="X&77

	0000		*0

000000  7777		-1
000001  1420		DEVICE LPSS;DEVICE LPT;1040;LPT&177+4000;ZBLOCK 2
000002  2323
000003  1420
000004  2400
000005  1040
000006  4175
000007  0000

		/THIS HANDLER IS MEANT TO BE USED FOR ANY KIND OF 
		/LINEPRINTER ONE MAY ENCOUNTER. FOR THE MOMENT IT IS
		/IMPLEMENTED FOR LP08,LS8E,LA180 OR LX180 (LOGABAX).
		/LIKE THE KL8E HANDLER IT IS RECOMMENDED THAT THE CODE
		/SHOULD BE WRITTEN IN SUCH A WAY, THAT THE CHANGES
		/CAN BE MADE WITH A MODIFIED 'SET' PROGRAM, I.E.
		/THIS HANDLER SHOULD NOT BE REASSEMBLED TOO OFTEN.

		/	ASSEMBLING PARAMETERS:

	0000		LX180=0	/1	/FOR LOGABAX PRINTER	SET LPT LX180
				/0	/FOR OTHER PRINTERS	-------------
	0001		LA180=1	/1	/FOR LA180 PRINTER	SET LPT LA78
				/0	/FOR LP08,LS8E PRINTER	SET LPT LA8A
		/	DEVC=66	/31	/OR SLU2 PORT VT78	SET LPT SLU2
				/33	/OR SLU3 PORT VT78	SET LPT SLU3
				/XX	/OR SLUX		SET LPT CODE XX
	0205		W=205		/LINE-WIDTH OF PAPER	SET LPT WIDTH X
	0014		F=14	/14	/ASCII FORMFEED		SET LPT PAGE
				/4	/LV8E EOT FORMFEED	SET LPT LV8E
				/0	/NO FORMFEEDS		SET LPT NO PAGE
					/OR			SET LPT NO LV8E
	0000		C=0	/-40	/CONVERT LOWER-CASE	SET LPT NO LC
				/0	/PRINT LOWER-CASE	SET LPT LC
	0110		P=110		/HEIGHT OF PAPER	SET LPT HEIGHT X
					/FOR FF SIMULATION
	0010		T=10		/TAB LENGTH .GE.1	SET LPT TAB X
	0000		S=0	/0	/USE HRDWR FFS		SET LPT NO PAUSE
					/OR			SET LPT NO FILL
				/4001	/HRDWR FFS + DELAY	SET LPT PAUSE
				/12	/SIMULATE FFS		SET LPT FILL
	7777		A=-1	/136	/ARROW CONTROL CHARS	SET LPT ARROW
				/-1	/DON'T ARROW THEM	SET LPT NO ARROW
	0000		E=0	/0	/PRINT ESC AS ^[(ARROW)	SET LPT ESC
				/11	/PRINT ESC AS $		SET LPT NO ESC
	0000		UNIT=0	/0,1	/FOR SECOND LPT		SET LPT UNIT [0,1]

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 3


		/SET UNIT=1 FOR THE SECOND LINE-PRINTER IN YOUR SYSTEM
			/LP08
	0660		DCLP08=660
			IFDEF DEVC <
			DCLP08=DEVC^10>
	6661		LSF=	6001+DCLP08	/SKIP ON FLAG
	6663		LSR=	6003+DCLP08	/SKIP ON ERROR
	6666		LLS=	6006+DCLP08	/LOAD LPT BUFFER
			IFNDEF DEVC <
	6667		LIC=	6667>
			IFDEF DEVC <
			LIC=	6005+DCLP08-10>

			/LA180
	6570		DBST=	6570	/SKIP IF DEMAND SET AND CLEAR IT
	6574		DBTD=	6574	/LOAD COMPLEMENT OF AC0-11 TO TRANSMIT BUFFER
	6575		DBSE=	6575	/SET INTERRUPT ENABLE
	6576		DBCE=	6576	/CLEAR INTERRUPT ENABLE
	6577		DBSS=	6577	/SEND STROBE PULSE

			/LOGABAX
	6576		LPSC=	6576	/SEND CHARACTER
	6575		LPCB=	6575	/CLEAR BUFFER
	6572		LPSF=	6572	/SKIP ON FLAG

	7757		MREAD=	7757	/BLEEP MONITOR LOC IN FLD 0
			IFZERO UNIT <
	7760		LLINE=	MREAD+1
	7761		LPAGE=	MREAD+2>
			IFNZRO UNIT <
			LLINE=	MREAD-1
			LPAGE=	MREAD+3>

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 4


	0200		*200

000200  7573	LPWDTH,	-W	/**SET	/-WIDTH-1    [USE -121 FOR 80 COLUMNS]
000201  0014	LTERMC,	F	/**SET+	/4 FOR LV8		*
000202  0000	LVCCNV,	C	/**SET	/0 IF PRINTER PRINTS LC	*
000203  7760	LPTLCT,	LLINE	/**SET	/MODIFIED BY LPT UNIT	*
000204  0000	LPTWC,	0		/			*
000205  0000	LPTCA,	0		/			*
000206  0000	PLPLNK,	0		/GETS ADRESS OF PAGE 2	*
000207  1775		TAD I	LPT	/ R/W BIT TO LINK	*	L
000210  0323		AND	LP7700	/			*	I
000211  7040		CMA		/TREAT 0 PG CNT AS 0 WD CNT	N
000212  3204		DCA	LPTWC	/SAVE -(DBLWD COUNT+1)	*	K
000213  0070	LP70,	70		/			*
000214  3367		DCA	LPTEOF	/INITIALIZE EOF		*
000215  0177	LPT177,	177		/			*
000216  0106	LPT106,	106		/			*
000217  6214	LPT214,	RDF		/DON'T MOVE THIS CODE ***
000220  1340		TAD	LPTCIF	/				M
000221  3261		DCA	LPTXIT	/SAVE CIF CDF RETRN FIELD	U
000222  1775		TAD I	LPT	/				S
000223  0213	LPT213,	AND	LP70	/				T
000224  1347		TAD	LPCDF	/
000225  3312		DCA	LPTCDF	/				N
000226  2375		ISZ	LPT	/PT TO BUFFER			O
000227  1775		TAD I	LPT	/GET BUFFER ADDRESS		T
000230  3205		DCA	LPTCA	/SAVE BUFFER PTR
000231  7201		CLA IAC		/MAKE -WIDTH
000232  1200		TAD	LPWDTH
000233  3306		DCA	LPARG	/PASS WIDTH AS ARGUMENT
000234  2375		ISZ	LPT	/PT TO BLOCK #			C
000235  1775		TAD I	LPT	/GET IT				H
000236  2375		ISZ	LPT	/POINT TO ERROR RETURN		G
000237  7420		SNL
000240  5302		JMP	LPTERR	/CAN'T READ FROM LPT
000241  7640	LPM140,	SZA CLA		/**SET SENTINEL
000242  5347		JMP	LPSTRT
			IFNZRO LX180 <	NOP >	/?INTERRUPT DISABLE
			IFZERO LX180 <
000243  6576		IFNZRO LA180 <	DBCE>	/INT DIS LA180
			IFZERO LA180 <	LIC >>	/INT DIS LP08

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 5


000244  1223		TAD	LPT213
000245  4304		JMS	LPTPCD	/RESET ALL
000246  1314		TAD	LPT215
000247  4304		JMS	LPTPCD	/CR ONLY
000250  1201		TAD	LTERMC	/OUTPUT FORM FEED IF BLOCK 0
000251  4304	LPTELP,	JMS	LPTPCD	/PRINT 3RD CHAR OF DOUBLEWORD
000252  2204		ISZ	LPTWC
000253  5263		JMP	LPTLP	/GET 3 MORE CHARS
000254  1367		TAD	LPTEOF	/WAS THIS A CLOSE OPERATION?
000255  7610		SKP CLA	/SNA CLA/NO GOOD FOR FOTP PREDELETE!
000256  1201	LPTCTZ,	TAD	LTERMC	/YES, TREAT LIKE CTZ
000257  4304		JMS	LPTPCD	/OUTPUT FORM FEED IF EOF SEEN (EOT OF LV8)
000260  2375		ISZ	LPT	/BUMP TO NORMAL RETURN
000261  7402	LPTXIT,	HLT		/RESTORE FIELDS
000262  5775		JMP I	LPT	/EXIT

		/UNPACKING LOOP - USES A SHIFT REGISTER METHOD TO GET THE
		/THIRD CHARACTER IN EACH DOUBLEWORD.

000263  7120	LPTLP,	STL		/GUARD BIT OF SHIFT REGISTER
000264  7006	LPROTL,	RTL
000265  7006		RTL
000266  7510		SPA		/DO WE HAVE 8 BITS SHIFTED IN?
000267  5251		JMP	LPTELP
000270  3367		DCA	LPTEOF	/SAVE SHIFT REGISTER
000271  1605		TAD I	LPTCA
000272  4304		JMS	LPTPCD	/PRINT A CHAR
000273  1605		TAD I	LPTCA
000274  2205		ISZ	LPTCA	/BUMP INPUT POINTER
000275  7400	LP7400,	7400		/PROTECT ISZ
000276  0275		AND	LP7400
000277  7104		CLL RAL
000300  1367		TAD	LPTEOF	/SHIFT HIGH 4 BITS INTO
000301  5264		JMP	LPROTL	/SHIFT REGISTER

000302  7330	LPTERR,	STL CLA RAR	/PUT 4000 IN AC
000303  5261		JMP	LPTXIT	/AND TAKE ERROR RETURN

000304  0000	LPTPCD,	0		/INTER-PAGE JUNK
000305  4606		JMS I	PLPLNK
000306  0000	LPARG,	0
000307  0000	LPP1,	0
000310  7440		SZA		/ZERO PRINT MEANS END
000311  5314		JMP	LPCHAR
000312  7402	LPTCDF,	HLT
000313  5704		JMP I	LPTPCD


/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 6


		/CHAR PRINT ROUTINE

		LPCHAR,			/LOW LEVEL PRINT ROUTINE
000314  0215	LPT215,	AND	LPT177
000315  1241		TAD	LPM140	/IS IT LOWER CASE?
000316  7500		SMA
000317  1202		TAD	LVCCNV	/YES, CONVERT (MAYBE)
000320  1216		TAD	LPT106	/IS IT AN EOF? (32)
000321  7440		SZA
000322  5325		JMP	.+3
000323  7700	LP7700,	7700		/**SET SENTINEL
000324  5256		JMP	LPTCTZ	/YES, GET OUT
000325  1366		TAD	LP7632	/RESTORE
			IFZERO LX180 <
			IFZERO LA180 <
			NOP		/NOP'S NEEDED FOR SET
			LLS		/PUT CHAR IN LPT BUFFER
			NOP
			>
			IFNZRO LA180 <
000326  7040		CMA
000327  6574		DBTD		/PUT CHAR IN LP BUFFER
000330  6577		DBSS		/SEND STROBE FOR PRINTRONIX
			>>
			IFNZRO LX180 <
			NOP		/FOR SET
			LPCB		/CLEAR FIRST
			LPSC		/SEND TO LX180
			>
000331  7600	LP7600,	7600		/CLEAR AC
000332  1331	LPCTCL,	TAD	LP7600
000333  6034		KRS
000334  1345		TAD	LP175	/CHECK FOR ^C FROM CONSOLE
000335  7650		SNA CLA
000336  6031		KSF		/WITH FLAG UP
000337  5342		JMP	.+3
000340  6203	LPTCIF,	CDF CIF 0	/**SET SENTINEL
000341  5731		JMP I	LP7600	/YES, RETURN TO OS/8
			IFZERO LX180 <
			IFZERO	LA180	<LSF>	/NO	FOR SET
000342  6570		IFNZRO	LA180	<DBST>>	/NO	MUST BE HERE
			IFNZRO   LX180	<LPSF>	/FOR LX180
000343  5332		JMP	LPCTCL	/WAIT FOR FLAG
000344  2603		ISZ I	LPTLCT	/COUNT ALL
000345  0175	LP175,	175		/PROTECT SKIP
000346  5707		JMP I	LPP1	/BACK IN LINE TO P 2

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 7


		LPCDF,			/** SET SENTINEL
000347  6201	LPSTRT,	CDF 0		/HERE ON NON-ZERO BLOCK#
			IFNZRO LX180 <
			SKP CLA		/GO TO PAGE INIT FOR LX
			>
			IFZERO LX180 <
000350  7200		CLA		/START FOR OTHERS
			>
000351  5251		JMP	LPTELP
000352  1603		TAD I	LPTLCT	/-WIDTH+CNT
000353  7041		CIA		/WIDTH-CNT
000354  1200		TAD	LPWDTH	/-WIDTH-1=-CNT-1
000355  3370		DCA	LPHOLD	/TEMPORARY
000356  1314		TAD	LPT215	/CR ONLY
000357  4304		JMS	LPTPCD
000360  2370	LPSPFL,	ISZ	LPHOLD
000361  7410		SKP
000362  5251		JMP	LPTELP
000363  1241		TAD	LPM140
000364  4304		JMS	LPTPCD
000365  5360		JMP	LPSPFL
000366  7632	LP7632,	7632
000367  0000	LPTEOF,	0
000370  0000	LPHOLD,	0

000371  0000		ZBLOCK 375-.

000375  0030	LPT,	LPVERSION	/NORMAL ENTRY POINT
000376  7330		CLA STL RAR
000377  4206		JMS	PLPLNK
	0400		PAGE

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 8


	4600		SEND=	JMS I	LPTOUT
000400  0000	LPTOUT,	0
000401  5211		JMP	LPARGS	/JUMP OVER SET ARGS
000402  7670	LPPAGL,	-P	/**SET	/PAGE LENGTH
000403  0010	LPTABL,	T	/**SET	/TAB SIZE
000404  0000	LPSIMU,	S	/**SET	/4001 HW FF, 12 SW FF
000405  7777	LPCTRL,	A	/**SET	/CTRLS: 136=^X, -1=NO PRINT
000406  0000	LPTESC,	E	/**SET	/11: ESC=$, 0: ESC=^[
000407  7760	LPLINE,	LLINE	/**SET	/MODIFIED BY LPT UNIT
000410  7761	LPPAGE,	LPAGE	/**SET	/     "        "
000411  0377	LPARGS,	AND 	(177
000412  1376		TAD	(-33	/IS IT ESCAPE?
000413  7450		SNA
000414  1206		TAD	LPTESC	/CONVERT TO PETRO-DOLLAR (MAYBE)
000415  1375		TAD	(33
000416  3350		DCA	LPTEMP
000417  6201		CDF 0
000420  1600		TAD I	LPTOUT
000421  2200		ISZ	LPTOUT
000422  3347		DCA	LWIDTH	/PASS WIDTH ARGUMENT
000423  1350		TAD	LPTEMP
000424  7450		SNA
000425  4600		SEND		/IGNORE REAL NULLS
000426  1374		TAD	(-177
000427  7450		SNA
000430  4600		SEND		/IGNORE RUBOUTS
000431  1373		TAD 	(145
000432  7450		SNA
000433  5254		JMP	LPTNRM	/CTRLZ IS NEVER PRINTED!
000434  1372		TAD	(14
000435  7100		CLL
000436  1371		TAD	(7
000437  7630		SZL CLA		/FORMAT CHAR?
000440  5276		JMP	LPTCTL	/YES
000441  1350		TAD	LPTEMP
000442  0251		AND	LPTNMV	/CONTROL CHAR?
000443  7640		SZA CLA
000444  5254		JMP	LPTNRM	/NO;OUT NORMAL
000445  1205		TAD	LPCTRL	/CONVERT TO ^X?
000446  7500		SMA		/-1=NO CONVERSION AND NO MOVE
000447  5344		JMP	LPTCON	/136=CONVERSION AND ALSO=^
000450  7001	LPTMMV,	IAC		/WITH NEXT MAKES -2 FOR BCKSPC
000451  7140	LPTNMV,	CMA CLL		/-1 FOR NO MOVE, ALSO MASK 140
000452  1607		TAD I	LPLINE
000453  3607		DCA I	LPLINE	/MODIFIED CHAR. COUNT
000454  1350	LPTNRM,	TAD	LPTEMP	/SEND NORMAL
000455  4600		SEND

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 9


000456  1607	LPTCHK,	TAD I	LPLINE	/CHECK IF LINE OVERFLOW
000457  7710		SPA CLA
000460  4600		SEND		/NO;GET OUT WITH 0 AC
000461  1370		TAD	(15	/YES, RESET LINE
000462  4600		SEND	
000463  1367		TAD	(12
000464  3350		DCA	LPTEMP
000465  1347		TAD	LWIDTH
000466  3607		DCA I	LPLINE	/RESET LINE
000467  2610	LPTLFD,	ISZ I	LPPAGE
000470  5251		JMP	LPTNMV	/NOT AT END OF PAGE
000471  1367		TAD	(12
000472  4600		SEND
000473  1202	LPTPRE,	TAD	LPPAGL	/AT END *****
000474  3610		DCA I	LPPAGE	/RESET PAGE
000475  5312		JMP	LPTLRE	/RESET LINE
000476  1350	LPTCTL,	TAD	LPTEMP
000477  1306		TAD	LPTJMP
000500  3301		DCA	.+1
000501  7402		HLT		/MUST BE 6 AFTER LPTPRE *****
000502  5251		JMP	LPTNMV	/" 7":BELL;	UNCHANGED;	NO MOVE
000503  5250		JMP	LPTMMV	/"10":BSPC;	UNCHANGED;	- MOVE
000504  5331		JMP	LPTTAB	/"11":TAB;	CONVERT;	X MOVE
000505  5267		JMP	LPTLFD	/"12";LF;	UNCHANGED;	NO MOVE, INC PAGE
000506  5273	LPTJMP,	JMP	LPTPRE	/"13":VTAB;	NOTHING;	RESET ALL
000507  5315		JMP	LPTFF	/"14":FFED;	SIMU!DELAY;	RESET ALL
000510  1370		TAD	(15	/"15":CR;	UNCHANGED;	RESET LINE
000511  4600		SEND
000512  1347	LPTLRE,	TAD	LWIDTH	/RESET LINE COUNTER
000513  3607		DCA I	LPLINE
000514  4600		SEND		/GET OUT

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 10


000515  1204	LPTFF,	TAD	LPSIMU	/IF NEGATIVE USE HARDWARE
000516  7740		SMA SZA CLA
000517  5322		JMP	LPFFL	/POSITIVE: SIMULATE WITH LFS
000520  1350		TAD	LPTEMP	/IT IS 14 FOR FF
000521  4600		SEND
000522  1204	LPFFL,	TAD	LPSIMU	/IF HARDWARE DELAY WITH 4001
000523  7450		SNA
000524  5273		JMP	LPTPRE	/OR NO DELAY WITH 0000
000525  4600		SEND		/IF SOFTWARE SIMULATE WITH 12
000526  2610		ISZ I	LPPAGE	/PAGE FINISHED?
000527  5322		JMP	LPFFL
000530  5273		JMP	LPTPRE	/RESET ALL AND RETURN

000531  1366	LPTTAB,	TAD 	(40
000532  4600		SEND		/ALWAYS ONE SPACE
000533  1607		TAD I	LPLINE	/-WIDTH+CNT
000534  7041		CIA		/WIDTH-CNT
000535  1347		TAD 	LWIDTH	/-CNT
000536  1203		TAD	LPTABL
000537  7510		SPA
000540  5336		JMP	.-2	/-CNT+X*TABL (POSITIVE)
000541  7640		SZA CLA		/AT TAB STOP? 
000542  5331		JMP 	LPTTAB
000543  5256		JMP	LPTCHK	/END TABS IF LINE FULL

000544  4600	LPTCON,	SEND		/SEND ^
000545  1365		TAD	(100	/AND ALPHA FOR CTRL
000546  5254		JMP	LPTNRM

000547  7660	LWIDTH,	-120
000550  0000	LPTEMP,	0
000565  0100
000566  0040
000567  0012
000570  0015
000571  0007
000572  0014
000573  0145
000574  7601
000575  0033
000576  7745
000577  0177
			$$$

/LPSS SET LPT HANDLER V50		  PAL8-V50X 31-MAY-87 PAGE 11

A      7777      LPTMMV 0450      
C      0000      LPTNMV 0451      
DBCE   6576      LPTNRM 0454      
DBSE   6575      LPTOUT 0400      
DBSS   6577      LPTPCD 0304      
DBST   6570      LPTPRE 0473      
DBTD   6574      LPTTAB 0531      
DCLP08 0660      LPTWC  0204      
E      0000      LPTXIT 0261      
F      0014      LPT106 0216      
LA180  0001      LPT177 0215      
LIC    6667      LPT213 0223      
LLINE  7760      LPT214 0217      
LLS    6666      LPT215 0314      
LPAGE  7761      LPVERS 0030      
LPARG  0306      LPWDTH 0200      
LPARGS 0411      LP175  0345      
LPCB   6575      LP70   0213      
LPCDF  0347      LP7400 0275      
LPCHAR 0314      LP7600 0331      
LPCTCL 0332      LP7632 0366      
LPCTRL 0405      LP7700 0323      
LPFFL  0522      LSF    6661      
LPHOLD 0370      LSR    6663      
LPLINE 0407      LTERMC 0201      
LPM140 0241      LVCCNV 0202      
LPPAGE 0410      LWIDTH 0547      
LPPAGL 0402      LX180  0000      
LPP1   0307      MREAD  7757      
LPROTL 0264      P      0110      
LPSC   6576      PLPLNK 0206      
LPSF   6572      S      0000      
LPSIMU 0404      SEND   4600      
LPSPFL 0360      T      0010      
LPSTRT 0347      UNIT   0000      
LPT    0375      W      0205      
LPTABL 0403      
LPTCA  0205      
LPTCDF 0312      
LPTCHK 0456      
LPTCIF 0340      
LPTCON 0544      
LPTCTL 0476      
LPTCTZ 0256      
LPTELP 0251      
LPTEMP 0550      
LPTEOF 0367      
LPTERR 0302      
LPTESC 0406      
LPTFF  0515      
LPTJMP 0506      
LPTLCT 0203      
LPTLFD 0467      
LPTLP  0263      
LPTLRE 0512      



ERRORS DETECTED: 0
LINKS GENERATED: 0