File: TDCO50.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text) 


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 1

		/TD8E DECTAPE COPY, V50
		/
		/
		/
		/
		/
		/
		//
		/
		/
		/
		/
		/COPYRIGHT (C) 1972, 1975
		/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
		/
		/
		/
		/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
		/SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU-
		/SION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANT OTHER
		/COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE
		/TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
		/AGREES TO THESE LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE
		/SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.
		/
		/
		/THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
		/NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
		/EQUIPMRNT COROPATION.
		/
		/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
		/SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
		/
		/
		/
		/
		/
		/

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 2






		/DEFINITIONS FOR PAL8 AND PAL10

	7002	BSW=7002
	7421	MQL=7421
	7501	MQA=7501
	7621	CAM=7621
	7521	SWP=7521
	7701	ACL=7701
	6007	CAF=6007
	6203	CDI=6203
	6030	KCF=6030
	6771	SDSS=6771
	6772	SDST=6772
	6773	SDSQ=6773
	6774	SDLC=6774
	6775	SDLD=6775
	6776	SDRC=6776
	6777	SDRD=6777
		FIXTAB


	7402	HALT=HLT


		/UNIT NUMBER DEFINITIONS FOR TD8E IOT'S

	0770	UNIT01=0770
	0760	UNIT23=0760
	0750	UNIT45=0750
	0740	UNIT67=0740


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 3





	7600	LIMIT=7600

	0011	*11

000011  0000	X11,	0
000012  0000	X12,	0

		/PAGE 0 CONSTANTS AND VARIABLES

	0020	*20
000020  0000	INPUT,	0		/INPUT UNIT CONSTANT
000021  0000	OUTPUT,	0		/OUTPUT UNIT CONSTANTS
000022  0000		0
000023  0000		0
000024  0000		0
000025  0000		0
000026  0000		0
000027  0000		0
000030  0000	OCOUNT,	0		/NUMBER OF OUTPUT UNITS SPECIFIED
000031  0000	OPOINT,	0
000032  0020	LIST,	OUTPUT-1
000033  0000	OUTNUM,	0
000034  0000	IBLOCK,	0		/STARTING INPUT BLOCK
000035  0000	OBLOCK,	0		/STARTING OUTPUT BLOCK
000036  0000	NUMBER,	0		/NUMBER OF BLOCKS TO TRANSFER
000037  0000	FIELDS,	0		/-(HIGHEST FIELD AVAILABLE)
000040  0000	COUNT,	0		/TEMPORARY COUNTERS
000041  0000	COUNT1,	0		/  "
000042  0000	COUNT2,	0		/  "
000043  0000	COUNT3,	0		/  "
000044  0000	COUNT4,	0		/  "
000045  0000	UNIT,	0		/UNIT CONSTANT--THIS TRANSFER
000046  0000	VERF,	0		/VERIFY SWITCH (1=YES,0=NO)
000047  0000	WDCNT,	0		/-(NUMBER OF WORDS PER BLOCK)
000050  0000	RW,	0		/READ/WRITE BIT--THIS TRANSFER
000051  0000	FLD0,	0		/# OF BLOCKS IN FIELD 0 BUFFER
000052  0000	FLDN,	0		/# OF BLOCKS IN FIELD N BUFFER
000053  0000	BUF0,	0		/START OF FIELD 0 BUFFER
000054  0000	BUFN,	0		/START OF FIELD N BUFFER
000055  0000	XNUMB,	0		/# OF BLOCKS LEFT TO TRANSFER
000056  0000	BLOCKN,	0		/STARTING BLOCK NUMBER--THIS TRANSFER
000057  0000	NUMB1,	0
000060  0000	NUMB2,	0
000061  0000	VB,	0
000062  0000	END0,	0		/BEGINNING OF FIELD 0 VERIFY BUFFER
000063  0000	ENTRY,	0		/ENTRY TO TD8E HANDLER
000064  0000	INB,	0
000065  0000	OUTB,	0
000066  0000	OHOLD,	0

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 4




000067  2404	MESSG1,	TEXT @TD8E COPY V50@
000070  7005
000071  4003
000072  1720
000073  3140
000074  2665
000075  6000
000076  4061	MESSG3,	TEXT @ 12-BIT WORDS PER BLOCK@
000077  6255
000100  0211
000101  2440
000102  2717
000103  2204
000104  2340
000105  2005
000106  2240
000107  0214
000110  1703
000111  1300

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 5




	0200	*200

000200  6046	START,	TLS
000201  4317		JMS CRLF
000202  4577		JMS I [MESSGE
000203  0067		MESSG1		/@TD8E COPY@
000204  4317		JMS CRLF
000205  3040		DCA COUNT
000206  5576		JMP I [END	/ONCE ONLY CODE FOR MULTIPLE FIELD TEST
000207  4336	START1,	JMS QUEST
000210  2457		MESSG4		/@FROM UNIT:@
000211  7521		SWP
000212  4352		JMS UNITNO	/MAKE UNIT NUMBER CONSTANT
000213  3020		DCA INPUT
000214  1032		TAD LIST
000215  3031		DCA OPOINT
000216  7410		SKP
000217  4325	AGAIN,	JMS ERR4	/*ILLEGAL RESPONSE*
000220  3030		DCA OCOUNT
000221  3040		DCA COUNT
000222  4577		JMS I [MESSGE
000223  2465		MESSG5		/@TO UNITS:@
000224  4575	MORE2,	JMS I [ANSWER
000225  5217		JMP AGAIN
000226  7701		ACL
000227  4352		JMS UNITNO	/MAKE UNIT NUMBER CONSTANT
000230  7421		MQL		/STORE IN MQ
000231  7501		MQA		/RESTORE TO AC
000232  7041		CIA
000233  1020		TAD INPUT
000234  7650		SNA CLA		/IS OUTPUT UNIT = INPUT UNIT ?
000235  5225		JMP MORE2+1	/YES--ERROR
000236  2031		ISZ OPOINT
000237  2030		ISZ OCOUNT	/COUNT ONE MORE OUTPUT UNIT
000240  1030		TAD OCOUNT
000241  1174		TAD [-10
000242  7710		SPA CLA		/WERE MORE THAN 7 UNITS SPECIFIED?
000243  5246		JMP .+3
000244  4317		JMS CRLF	/YES--CARRIAGE RETURN
000245  5255		JMP OALL	/IGNORE EXTRA ONE
000246  7521		SWP		/NO--
000247  3431		DCA I OPOINT	/STORE UNIT CONSTANT IN LIST
000250  1040		TAD COUNT
000251  7041		CIA
000252  1030		TAD OCOUNT
000253  7750		SPA SNA CLA	/ALL UNITS IN?
000254  5224		JMP MORE2	/YES

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 6




000255  3040	OALL,	DCA COUNT
000256  4577		JMS I [MESSGE
000257  1040		MESSG6		/@FIRST INPUT BLOCK:@
000260  4575		JMS I [ANSWER
000261  5306		JMP WHOLE	/COPY WHOLE TAPE
000262  1040		TAD COUNT
000263  7650		SNA CLA		/WERE TOO MANY SPECIFIED?
000264  5271		JMP .+5
000265  4577		JMS I [MESSGE	/YES
000266  2511		ERROR4		/@ILLEGAL RESPONSE@
000267  4317		JMS CRLF
000270  5255		JMP OALL	/REPEAT THE QUESTION
000271  7701		ACL		/NO
000272  3034		DCA IBLOCK	/STORE
000273  4336		JMS QUEST
000274  1052		MESSG7		/@FIRST OUTPUT BLOCK:@
000275  7701		ACL
000276  3035		DCA OBLOCK
000277  4336		JMS QUEST
000300  1064		MESSG8		/@NUMBER OF BLOCKS TO COPY:@
000301  7701		ACL
000302  7450		SNA		/WERE 0 BLOCKS SPECIFIED?
000303  5345		JMP QUEST1	/YES--REPEAT QUESTION
000304  3036		DCA NUMBER
000305  5311		JMP .+4
000306  3034	WHOLE,	DCA IBLOCK
000307  3035		DCA OBLOCK
000310  3036		DCA NUMBER	/0 MEANS WHOLE TAPE
000311  4336		JMS QUEST
000312  1101		MESSG9		/@VERIFY OUTPUT (YES=1,NO=0):@
000313  7701		ACL
000314  0173		AND [7
000315  3046		DCA VERF
000316  5777		JMP I (SETUP

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 7




		/OUTPUT CARRIAGE RETURN/LINE FEED

000317  0000	CRLF,	0
000320  1376		TAD (215
000321  4572		JMS I [TYPE
000322  1171		TAD [212
000323  4572		JMS I [TYPE
000324  5717		JMP I CRLF	/--RETURN--

000325  0000	ERR4,	0
000326  4577		JMS I [MESSGE
000327  2511		ERROR4		/@ILLEGAL RESPONSE@
000330  4317		JMS CRLF	/OUTPUT CARRIAGE RETURN/LINE FEED
000331  1170		TAD [-4
000332  1325		TAD ERR4
000333  3325		DCA ERR4
000334  3040		DCA COUNT
000335  5725		JMP I ERR4	/--RETURN--


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 8




000336  0000	QUEST,	0
000337  1736		TAD I QUEST
000340  3343		DCA MNUM
000341  2336		ISZ QUEST
000342  4577		JMS I [MESSGE
000343  0000	MNUM,	0
000344  4575		JMS I [ANSWER
000345  4325	QUEST1,	JMS ERR4
000346  1040		TAD COUNT
000347  7640		SZA CLA
000350  5345		JMP QUEST1
000351  5736		JMP I QUEST	/--RETURN--


		/CONVERT UNIT NUMBER TO A WORD OF THE FORM
		/000 XXX XXX 000 OR
		/100 XXX XXX 000
		/WHERE XY0 IS THE THIRD DIGIT OF THE IOT
		/AND 0 OR 1 REFLECTS THE TD8E UNIT NUMBER
		/ENTER WITH THE UNIT NUMBER IN THE AC
		/EXIT WITH SPECIAL CODE IN AC

000352  0000	UNITNO,	0
000353  0173		AND [7		/MASK OUT ALL EXTRANEOUS BITS
000354  7110		CLL RAR		/SAVE 0/1 BIT IN LINK
000355  7421		MQL		/STORE ROTATED WORD, CLEAR AC
000356  7010		RAR
000357  7521		SWP		/PRESERVE 0/1 BIT IN MQ
000360  1365		TAD TABX	/GET DEVICE NUMBER CORRECTLY
000361  3317		DCA CRLF
000362  1717		TAD I CRLF
000363  7501		MQA		/OR IN 0/1 BIT
000364  5752		JMP I UNITNO	/--RETURN--

000365  2435	TABX,	UNITS

		/SKIP 4 LINES AND FETCH MARK TRACK

000366  0000	SKIPQ,	0
000367  6773	IOTR5,	SDSQ
000370  5367		JMP .-1
000371  6776	IOTR6,	SDRC
000372  5766		JMP I SKIPQ	/--RETURN--

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 9




000376  0215
000377  0600
	0400	*400

		/USER RESPONSE HANDLER
		/USES MQ FOR TEMPORARY STORAGE
		/EXIT WITH RESPONSE IN MQ
		/EXIT TO CALL+1 IF JUST CARRIAGE RETURN
		/OR ILLEGAL CHARACTER, CARRIAGE RETURN
		/OR ;,CARRIAGE RETURN
		/EXIT TO CALL+2 IF GOOD DATA, CARRIAGE RETURN
		/INCREMENT COUNT AND EXIT TO CALL+2 IF GOOD DATA;
		/ILLEGAL CHARACTERS CAUSE WHOLE ANSWER TO BE IGNORED
		/AND EXIT TO CALL+1

000400  0000	ANSWER,	0
000401  7621		CAM		/CLEAR AC AND MQ
000402  1236		TAD CLEAR
000403  3212		DCA SWITCH
000404  4250	MORE,	JMS LISTEN	/FETCH A CHARACTER
000405  1377		TAD (-215
000406  7440		SZA		/IS IT A CARRIAGE RETURN?
000407  5214		JMP .+5		/NO
000410  1171		TAD [212	/YES--OUTPUT LINE FEED
000411  4327		JMS TYPE
000412  7000	SWITCH,	NOP		/SET UP EXIT ADDRESS
000413  5600		JMP I ANSWER	/--RETURN--
000414  1376		TAD (215-260
000415  7510		SPA		/IS CHARACTER LESS THAN 260?
000416  5240		JMP BAD		/YES--ILLEGAL CHARACTER
000417  1174		TAD [260-270	/NO
000420  7500		SMA		/IS IT MORE THAN 269?
000421  5243		JMP SEMI	/YES--CHECK FOR SEMICOLON
000422  1375		TAD (270	/RESTORE CHARACTER
000423  0173		AND [7		/MASK OUT EXTRANEOUS BITS
000424  7100		CLL
000425  7521		SWP
000426  0374		AND (777	/MASK OUT FIRST DIGIT IF THERE ARE 4
000427  7004		RAL		/ROTATE 3 LEFT
000430  7006		RTL
000431  7501		MQA		/FETCH NEW CHARACTER
000432  7421		MQL		/STORE RESULT IN MQ
000433  1237		TAD SKIP	/SET UP TO SKIP ON RETURN
000434  3212		DCA SWITCH
000435  5204		JMP MORE	/FETCH ANOTHER


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 10




000436  7000	CLEAR,	NOP
000437  2200	SKIP,	ISZ ANSWER

000440  7200	BAD,	CLA		/ILLEGAL CHARACTER
000441  4567		JMS I [CRLF
000442  5600		JMP I ANSWER	/--RETURN--


		/TEST FOR SEMICOLON

000443  1373	SEMI,	TAD (270-273
000444  7640		SZA CLA		/IS CHARACTER A SEMICOLON?
000445  5240		JMP BAD		/NO--ILLEGAL CHARACTER
000446  2040		ISZ COUNT	/YES--INCREMENT COUNTER
000447  5212		JMP SWITCH	/EXIT FROM ANSWER ROUTINE


		/TELETYPE INPUT AND ECHO HANDLER

000450  0000	LISTEN,	0
000451  6031		KSF
000452  5251		JMP .-1
000453  4566		JMS I	[PARITY
000454  6046		TLS		/ECHO CHARACTER
000455  4257		JMS CHECK	/CHECK FOR CTRL/C AND CTRL/S
000456  5650		JMP I LISTEN	/--RETURN--

		/CHECK FOR CTRL/C AND CTRL/S
		/ENTER WITH INPUT CHARACTER IN AC
		/EXIT TO HANDLER OR WITH CHARACTER IN AC

000457  0000	CHECK,	0
000460  1372		TAD (-203
000461  7450		SNA		/IS IT CTRL/C?
000462  5670		JMP I CTRLC	/YES--HANDLE IT
000463  1371		TAD (203-223
000464  7450		SNA		/IS IT CTRL/S?
000465  5565		JMP I [REPEAT	/YES--HANDLE IT
000466  1370		TAD (223	/RESTORE CHARACTER
000467  5657		JMP I CHECK	/--RETURN--

000470  7600	CTRLC,	LIMIT

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 11




		/MESSAGE OUTPUT HANDLER

		/EXPECTS MESSAGE ADDRESS TO BE IN LOCATION AFTER CALL
		/EXITS TO CALL+2

000471  0000	MESSGE,	0
000472  1671		TAD I MESSGE
000473  3324		DCA FINDER	/SET UP POINTER
000474  2271		ISZ MESSGE
000475  3325		DCA LOC		/SET L/R SWITCH TO L (EVEN)
000476  1724	LNEXT,	TAD I FINDER	/GET WORD
000477  7002		BSW
000500  0164	RHALF,	AND [77
000501  7450		SNA		/IS CHARACTER 0 (TERMINATOR)?
000502  5671		JMP I MESSGE	/YES--RETURN--
000503  3326		DCA CHAR
000504  1326		TAD CHAR
000505  0367		AND (40
000506  7650		SNA CLA		/IS IT A LETTER?
000507  1163		TAD [100	/YES--301-337
000510  1162		TAD [200	/NO--240-277
000511  1326		TAD CHAR	/RESTORE CHARACTER
000512  4327		JMS TYPE	/OUTPUT IT
000513  2325		ISZ LOC
000514  1325		TAD LOC
000515  7010		RAR
000516  7630		SZL CLA		/WHICH HALF WAS THAT?
000517  5322		JMP .+3
000520  2324		ISZ FINDER	/RIGHT
000521  5276		JMP LNEXT
000522  1724		TAD I FINDER	/LEFT
000523  5300		JMP RHALF
000524  0000	FINDER,	0
000525  0000	LOC,	0
000526  0000	CHAR,	0


		/TELETYPE OUTPUT ROUTINE


000527  0000	TYPE,	0
000530  6041		TSF
000531  5330		JMP .-1
000532  6046		TLS
000533  7200		CLA
000534  5727		JMP I TYPE	/--RETURN--


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 12




		/INSERT IOT'S ACCORDING TO TABLES
		/UNIT CONTAINS APPROPRIATE UNIT CODE
		/COUNT CONTAINS -(NUMBER OF IOT'S TO TRANSFER)
		/COUNT1 CONTAINS ADDRESS OF ADDRESS TABLE
		/UNIT CONTAINS UNIT CODE OF CURRENT UNIT

000535  0000	INSERT,	0
000536  1441		TAD I COUNT1
000537  3043		DCA COUNT3
000540  1045		TAD UNIT
000541  7421		MQL
000542  1443		TAD I COUNT3	/MAKE NEW IOT
000543  0366		AND (7007
000544  7501		MQA
000545  7041		CIA
000546  1443		TAD I COUNT3	/COMPARE WITH IOT FROM PROGRAM
000547  7650		SNA CLA		/ARE THE IOT'S THE SAME AS THE LAST UNIT?
000550  5735		JMP I INSERT	/YES--RETURN--
000551  1441	INS1,	TAD I COUNT1
000552  3043		DCA COUNT3
000553  1443		TAD I COUNT3	/GET IOT FROM PROGRAM
000554  0366		AND (7007	/RETAIN ONLY SIGNIFICANT BITS
000555  7501		MQA		/OR IN UNIT NUMBER
000556  3443		DCA I COUNT3	/PUT IT IN PROGRAM
000557  2041		ISZ COUNT1	/BUMP COUNTERS
000560  2040		ISZ COUNT	/DONE YET?
000561  5351		JMP INS1	/NO
000562  5735		JMP I INSERT	/YES--RETURN--


000566  7007
000567  0040
000570  0223
000571  7760
000572  7575
000573  7775
000574  0777
000575  0270
000576  7735
000577  7563
	0600	PAGE

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 13




		/COUNT THE NUMBER OF WORDS PER BLOCK
		/PLACE IT IN MWORDS
		/BE SURE ALL TAPES MATCH INPUT FORMAT

000600  1032	SETUP,	TAD LIST
000601  3031		DCA OPOINT	/SET POINTER TO I/O LIST
000602  3042		DCA COUNT2	/CLEAR COUNTER
000603  1030		TAD OCOUNT
000604  7040		CMA
000605  3033		DCA OUTNUM	/SET # OF UNITS
000606  1377	SET4,	TAD (TABLE1-END1-1	/SET UP COUNTERS FOR IOT FIX
000607  3040		DCA COUNT
000610  1376		TAD (TABLE1
000611  3041		DCA COUNT1
000612  1431		TAD I OPOINT
000613  3045		DCA UNIT
000614  4561		JMS I [INSERT	/PUT THE PROPER IOT'S IN THE FOLLOWING ROUTINE
000615  3047		DCA WDCNT	/CLEAR WORD COUNT
000616  1045		TAD UNIT
000617  0160		AND [4000
000620  1375		TAD (2000
000621  6774	IOTX7,	SDLC
000622  7200		CLA
000623  6776	IOTX8,	SDRC
000624  7006		RTL
000625  7430		SZL		/DOES UNIT EXIST?
000626  5231		JMP .+3		/YES
000627  4557	SELERR,	JMS I [ERR3	/@SELECT ERROR UNIT N@
000630  5200		JMP SETUP
000631  0374		AND (400
000632  7640		SZA CLA		/TURNED ON?
000633  5227		JMP SELERR	/NO
000634  1045		TAD UNIT	/GET 0 OR 1 UNIT BIT (0 OR 4000)
000635  0160		AND [4000
000636  1156		TAD [1000	/GET GO BIT
000637  6774	IOTX1,	SDLC		/START READING FORWARD
000640  4353		JMS SKIP4	/SKIP 8 LINES TO AVOID GARBAGE
000641  4353		JMS SKIP4
000642  6771	IOTX3,	SDSS		/LOOK FOR FORWARD BLOCK NUMBER (26)
000643  5242		JMP .-1
000644  6776	IOTX4,	SDRC
000645  0164		AND [77
000646  1373		TAD (-26
000647  7640		SZA CLA		/FOUND YET?
000650  5242		JMP IOTX3	/NO--KEEP LOOKING

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 14




000651  4353	SET2,	JMS SKIP4	/YES--START COUNTING LINES BY FOURS
000652  2047		ISZ WDCNT
000653  7000		NOP
000654  0164		AND [77
000655  1372		TAD (-51
000656  7640		SZA CLA		/FOUND GUARD YET?
000657  5251		JMP SET2	/NO
000660  1045		TAD UNIT	/YES
000661  0160		AND [4000
000662  6774	IOTX2,	SDLC		/STOP UNIT
000663  7200		CLA
000664  1042		TAD COUNT2
000665  7440		SZA		/IS THIS THE INPUT UNIT?
000666  5274		JMP SET5	/NO
000667  1371		TAD (-11	/YES--SAVE THE COUNT
000670  1047		TAD WDCNT
000671  7041		CIA
000672  3042		DCA COUNT2
000673  5300		JMP SET3	/FIRST OUTPUT UNIT
000674  1371	SET5,	TAD (-11	/NOT INPUT UNIT
000675  1047		TAD WDCNT
000676  7640		SZA CLA		/SAME NUMBER OF WORDS AS INPUT UNIT?
000677  5344		JMP ERR5	/NO*ILLEGAL FORMAT*
000700  2031	SET3,	ISZ OPOINT	/NEXT UNIT
000701  2033		ISZ OUTNUM	/DONE YET?
000702  5206		JMP SET4	/NO
000703  1042		TAD COUNT2	/YES--PRINT MESSAGE
000704  3555		DCA I [MWORDS	/SET UP NUMBER OF WORDS PER BLOCK
000705  1555		TAD I [MWORDS
000706  7041		CIA
000707  4554		JMS I [PRINT	/PRINT 4 DIGIT NUMBER OF BLOCKS
000710  4577		JMS I [MESSGE	/YES--PRINT REST OF MESSAGE
000711  0076		MESSG3
000712  4567		JMS I [CRLF

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 15




		/IF WHOLE TAPE IS TO BE COPIED, IT IS NECESSARY TO
		/COMPUTE THE NUMBER OF BLOCKS ON THE TAPE (NB)
		/USING THE NUMBER OF WORDS PER BLOCK (WB)
		/AND THE FORMULA:
		/OCTAL:          NB=[63 6160/(WB+17)]+2
		/DECIMAL:	 NB=[212,080/(WB+15)]+2

000713  1036		TAD NUMBER
000714  7640		SZA CLA		/COPY WHOLE TAPE?
000715  5770' 		JMP VERFQ	/NO--
000716  3040		DCA COUNT	/YES--COMPUTE NUMBER OF BLOCKS ON TAPE
000717  1555		TAD I [MWORDS
000720  7041		CIA
000721  1367		TAD (17
000722  3041		DCA COUNT1	/GET NUMBER OF WORDS PER BLOCK+17
000723  1366		TAD (-64
000724  3042		DCA COUNT2
000725  1365		TAD (-6160
000726  7100	SUB,	CLL
000727  1041		TAD COUNT1
000730  2040		ISZ COUNT	/COUNT A BLOCK--TOO MANY?
000731  7410		SKP		/NO
000732  5344		JMP ERR5	/YES--ERROR
000733  7430		SZL
000734  2042		ISZ COUNT2
000735  5326		JMP SUB
000736  7300		CLA CLL
000737  1040		TAD COUNT	/COUNT IS [63 6160/WB+17]+1
000740  7001		IAC		/ADD 1 MORE
000741  3036		DCA NUMBER	/STORE AS # OF BLOCKS TO TRANSFER
000742  5743		JMP I .+1
000743  1000		VERFQ

000744  7200	ERR5,	CLA
000745  4577		JMS I [MESSGE
000746  2472		ERROR5		/*ILLEGAL FORMAT UNIT*
000747  4553		JMS I [DECODE	/PRINT UNIT NUMBER
000750  4552		JMS I [CTRLR	/WAIT FOR CTRL/R
000751  4567		JMS I [CRLF	/CARRIAGE RETURN/LINE FEED
000752  5200		JMP SETUP	/TRY AGAIN




		/READ FOUR LINES AND FETCH MARK TRACK

000753  0000	SKIP4,	0
000754  6773	IOTX5,	SDSQ
000755  5354		JMP .-1
000756  6776	IOTX6,	SDRC
000757  5753		JMP I SKIP4	/--RETURN--


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 15-1




/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 16




000765  1620
000766  7714
000767  0017
000770  1000
000771  7767
000772  7727
000773  7752
000774  0400
000775  2000
000776  2447
000777  7770
	1000	PAGE

		/IS TAPE TO BE VERIFIED?
		/SET UP DEPENDING ON RESPONSE
001000  1046	VERFQ,	TAD VERF
001001  7640		SZA CLA		/VERIFY?
001002  5210		JMP YES		/YES--
001003  1377		TAD (NOP	/NO--
001004  3616		DCA I VERF1A
001005  1376		TAD (OUTN
001006  3617		DCA I VERF2A
001007  5214		JMP CONT
001010  1375	YES,	TAD (RAR
001011  3616		DCA I VERF1A
001012  1374		TAD (VERIFY
001013  3617		DCA I VERF2A
001014  5615	CONT,	JMP I .+1
001015  1200		DOIT

001016  1311	VERF1A,	VERF1
001017  1274	VERF2A,	VERF2

		/WAIT FOR CTRL/R

001020  0000	CTRLR,	0
001021  4551		JMS I [LISTEN	/FETCH CHARACTER
001022  1150		TAD [-222
001023  7640		SZA CLA		/IT IT CTRL/R?
001024  5221		JMP .-3		/NO--WAIT FOR ONE
001025  4567		JMS I [CRLF	/CARRIAGE RETURN/LINE FEED
001026  5620		JMP I CTRLR	/--RETURN--


001027  3040	REPEAT,	DCA COUNT
001030  4567		JMS I [CRLF
001031  4547		JMS I [QUEST	/@REPEAT (YES=1;NO=0):@
001032  1122		MESS11
001033  7701		ACL
001034  0173		AND [7
001035  7640		SZA CLA
001036  5546		JMP I [CLEAN	/YES

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 16-1

001037  5545		JMP I [START+4	/NO--RESTART

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 17




001040  0611	MESSG6,	TEXT @FIRST INPUT BLOCK:@
001041  2223
001042  2440
001043  1116
001044  2025
001045  2440
001046  0214
001047  1703
001050  1372
001051  0000
001052  0611	MESSG7,	TEXT @FIRST OUTPUT BLOCK:@
001053  2223
001054  2440
001055  1725
001056  2420
001057  2524
001060  4002
001061  1417
001062  0313
001063  7200
001064  1625	MESSG8,	TEXT @NUMBER OF BLOCKS TO COPY:@
001065  1502
001066  0522
001067  4017
001070  0640
001071  0214
001072  1703
001073  1323
001074  4024
001075  1740
001076  0317
001077  2031
001100  7200
001101  2605	MESSG9,	TEXT @VERIFY OUTPUT (YES=1,NO=0):@
001102  2211
001103  0631
001104  4017
001105  2524
001106  2025
001107  2440
001110  5031
001111  0523
001112  7561
001113  5416
001114  1775
001115  6051
001116  7200
001117  0417	MESS10,	TEXT @DONE@
001120  1605
001121  0000
001122  2205	MESS11,	TEXT @REPEAT (YES=1,NO=0):@
001123  2005

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 17-1

001124  0124
001125  4050
001126  3105
001127  2375
001130  6154
001131  1617
001132  7560
001133  5172
001134  0000
001135  2605	ERROR1,	TEXT @VERIFY ERROR BLOCK @
001136  2211
001137  0631
001140  4005
001141  2222
001142  1722
001143  4002
001144  1417
001145  0313
001146  4000
001147  2401	ERROR2,	TEXT @TAPE ERROR BLOCK @
001150  2005
001151  4005
001152  2222
001153  1722
001154  4002
001155  1417
001156  0313
001157  4000
001160  2305	ERROR3,	TEXT @SELECT ERROR UNIT @
001161  1405
001162  0324
001163  4005
001164  2222
001165  1722
001166  4025
001167  1611
001170  2440
001171  0000

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 18




001174  1400
001175  7010
001176  1246
001177  7000
	1200	PAGE

		/SETUP FOR ACTUAL READ/WRITE/VERIFY OPERATION
001200  1144	DOIT,	TAD [LIMIT-END	/SET UP NUMBER OF BLOCKS
001201  4275		JMS DIV1	/IN FIELD 0 BUFFER
001202  3051		DCA FLD0
001203  1371		TAD M200
001204  4275		JMS DIV1	/AND IN FIELD N BUFFERS
001205  3052		DCA FLDN
001206  1034		TAD IBLOCK	/SET UP RUNNING COUNTERS AND POINTERS
001207  3064		DCA INB		/FOR NEXT INPUT BLOCK
001210  1035		TAD OBLOCK
001211  3065		DCA OUTB	/FOR NEXT OUTPUT BLOCK
001212  1036		TAD NUMBER
001213  3057		DCA NUMB1	/FOR NUMBER OF BLOCKS LEFT TO TRANSFER
001214  5220		JMP .+4
001215  1055	ALLDUN,	TAD XNUMB
001216  7650		SNA CLA		/DONE WITH ALL BLOCKS YET?
001217  5313		JMP REWIND	/YES
		/READ---
001220  1032	READX,	TAD LIST	/NO--SET UP POINTER TO OUTPUT UNITS
001221  3031		DCA OPOINT
001222  1030		TAD OCOUNT
001223  7040		CMA
001224  3033		DCA OUTNUM
001225  1064		TAD INB
001226  3056		DCA BLOCKN
001227  1057		TAD NUMB1	/SET POINTERS FOR TRANSFER
001230  3055		DCA XNUMB
001231  1057		TAD NUMB1
001232  3060		DCA NUMB2	/SAVE COUNTER FOR WRITE
001233  1020		TAD INPUT	/SELECT INPUT UNIT
001234  3045		DCA UNIT
001235  3050		DCA RW		/SET R/W BIT TO READ

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 19




001236  1176		TAD [END	/SET START OF BUFFERS IN CASE
001237  3053		DCA BUF0	/THEY WERE CHANGED BY VERIFY
001240  3054		DCA BUFN
001241  4543		JMS I [READY	/FILL THE BUFFERS
001242  1055		TAD XNUMB	/SAVE THE POINTERS
001243  3057		DCA NUMB1
001244  1056		TAD BLOCKN
001245  3064		DCA INB

001246  2031	OUTN,	ISZ OPOINT
001247  2033		ISZ OUTNUM	/DONE WITH ALL UNITS YET?
001250  5254		JMP .+4		/NO--CONTINUE WRITING
001251  1066		TAD OHOLD	/YES
001252  3065		DCA OUTB
001253  5215		JMP ALLDUN	/READ ANOTHER BUFFER LOAD
001254  1065	WRITEX,	TAD OUTB
001255  3066		DCA OHOLD
001256  1066		TAD OHOLD	/WRITE
001257  3056		DCA BLOCKN	/RESET POINTERS
001260  1065		TAD OUTB
001261  3061		DCA VB		/SAVE COUNTER FOR VERIFY
001262  1060		TAD NUMB2
001263  3055		DCA XNUMB
001264  1431		TAD I OPOINT	/SELECT OUTPUT UNIT
001265  3045		DCA UNIT
001266  7330		CLA CLL CML RAR	/AC=4000
001267  3050		DCA RW		/SET R/W BIT TO WRITE
001270  4543		JMS I [READY
001271  1056		TAD BLOCKN
001272  3066		DCA OHOLD
001273  5674		JMP I .+1
001274  1400	VERF2,	VERIFY



/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 20




		/SEE HOW MANY BLOCKS WILL FIT INTO BUFFER
		/ENTER WITH BUFFER SIZE IN AC
		/EXIT WITH # OF BLOCKS IN AC

001275  0000	DIV1,	0
001276  3041		DCA COUNT1
001277  3040		DCA COUNT
001300  1041		TAD COUNT1	/TOTAL WORDS
001301  7100	DIV2,	CLL
001302  1555		TAD I [MWORDS	/-NUMBER OF WORDS PER BLOCK
001303  7420		SNL		/RUN OUT OF ROOM?
001304  5307		JMP .+3		/YES--
001305  2040		ISZ COUNT	/NO--COUNT A BLOCK
001306  5301		JMP DIV2
001307  7300		CLA CLL		/IGNORE LESS THAN A BLOCK LEFT
001310  1040		TAD COUNT
001311  7010	VERF1,	RAR		/DIVIDE BY 2 IF VERIFY (NOP IF NO VERIFY)
001312  5675		JMP I DIV1	/--RETURN--

		/END OF OPERATION
		/REWIND TAPES TO INITIAL END ZONE

001313  1030	REWIND,	TAD OCOUNT
001314  7040		CMA
001315  3042		DCA COUNT2	/SET NUMBER OF TAPES STILL SPINNING
001316  7240	RLIST,	CLA CMA
001317  1032		TAD LIST
001320  3031		DCA OPOINT	/SET POINTER TO UNIT LIST
001321  1030		TAD OCOUNT
001322  7001		IAC
001323  7040		CMA
001324  3033		DCA OUTNUM	/SET NUMBER OF UNITS IN LIST
001325  4566	RUNIT,	JMS I	[PARITY
001326  4542		JMS I [CHECK	/CHECK TTY FOR CTRL/S OR CTRL/C
001327  2033		ISZ OUTNUM	/DONE WITH WHOLE LIST YET?
001330  7610		SKP CLA		/NO
001331  5316		JMP RLIST	/YES--START THROUGH LIST AGAIN
001332  2031		ISZ OPOINT
001333  1431		TAD I OPOINT	/GET UNIT CODE
001334  7006		RTL
001335  7630		SZL CLA		/STILL SPINNING?
001336  5325		JMP RUNIT	/NO--TRY NEXT TAPE
001337  1431		TAD I OPOINT	/YES
001340  3045		DCA UNIT

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 21





001341  1141		TAD [-6
001342  3040		DCA COUNT
001343  1140		TAD [RTAB
001344  3041		DCA COUNT1
001345  4561		JMS I [INSERT	/PUT PROPER IOT'S IN THIS ROUTINE
001346  1431		TAD I OPOINT
001347  0160		AND [4000	/UNIT/READ
001350  1137		TAD [3000	/REVERSE/GO
001351  6774	IOTR1,	SDLC
001352  4536		JMS I [SKIPQ
001353  4536		JMS I [SKIPQ	/WAIT FOR DRIVE TO GET UP TO SPEED
001354  6771	IOTR2,	SDSS
001355  5354		JMP .-1
001356  6776	IOTR3,	SDRC		/GET MARK TRACK BITS
001357  0164		AND [77
001360  1135		TAD [-22
001361  7640		SZA CLA		/END ZONE?
001362  5354		JMP IOTR2	/NO INTERLEAVE, SEQUENTIAL DRIVES WVDMARK/JMP RUNIT	/NO--NEXT UNIT
001363  7332		CLA CLL CML RTR	/AC=2000
001364  7501		MQA		/UNIT CODE STILL IN MQ FROM INSERT
001365  3431		DCA I OPOINT	/SET STOPPED BIT
001366  1431		TAD I OPOINT
001367  0134		AND [6000
001370  6774	IOTR4,	SDLC		/STOP UNIT
001371  7600	M200,	7600		/CLA
001372  2042		ISZ COUNT2	/ALL TAPES STOPPED?
001373  5325		JMP RUNIT	/NO--NEXT UNIT
001374  4577		JMS I [MESSGE	/YES
001375  1117		MESS10		/@DONE@
001376  5565		JMP I [REPEAT


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 22





	1400	PAGE

		/VERIFICATION ROUTINES

001400  1061	VERIFY,	TAD VB		/SET POINTERS AND COUNTERS FOR TRANSFER
001401  3056		DCA BLOCKN
001402  1060		TAD NUMB2
001403  3055		DCA XNUMB
001404  3050		DCA RW
001405  1062		TAD END0	/SET BEGINNINGS OF VERIFY BUFFERS
001406  3053		DCA BUF0
001407  1377		TAD (3700
001410  3054		DCA BUFN
001411  1275		TAD CDF0
001412  3271		DCA COMP2
001413  4543		JMS I [READY	/READ VERIFY BUFFERS FULL
001414  1041		TAD COUNT1	/GET # OF BLOCKS IN LAST BUFFER FILLED
001415  3043		DCA COUNT3
001416  7040		CMA		/SET AUTOINDEX POINTERS TO BUFFERS
001417  1176		TAD [END
001420  3011		DCA X11
001421  7140		CMA CLL
001422  1062		TAD END0
001423  3012		DCA X12
001424  1040		TAD COUNT
001425  7040		CMA
001426  1037		TAD FIELDS
001427  3040		DCA COUNT	/SET NUMBER OF FIELDS WHICH WERE FILLED
001430  4255		JMS COMP4	/GET NUMBER OF BLOCKS
001431  1051		TAD FLD0
001432  7041		CIA
001433  3044		DCA COUNT4	/SET COUNTER
001434  4266		JMS COMP	/COMPARE THE BUFFERS

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 23




001435  1040	COMP3,	TAD COUNT
001436  7650		SNA CLA
001437  5533		JMP I [OUTN
001440  4255		JMS COMP4	/GET NUMBER OF BLOCKS
001441  1052		TAD FLDN
001442  7041		CIA
001443  3044		DCA COUNT4
001444  1271		TAD COMP2	/EACH FIELD------
001445  1376		TAD (10
001446  3271		DCA COMP2	/SET CDF INSTRUCTION PROPERLY
001447  7140		CMA CLL		/SET AUTOINDEX POINTERS TO BUFFERS
001450  3011		DCA X11
001451  1375		TAD (3677
001452  3012		DCA X12
001453  4266		JMS COMP
001454  5235		JMP COMP3	/DO THE NEXT FIELD


		/ENTER WITH AC CLEAR
		/EXIT TO CALL+1 WITH AC CLEAR IF
		/NORMAL BUFFER FILL
		/EXIT TO CALL+2 WITH # OF BLOCKS IN AC IF
		/LAST BUFFER

001455  0000	COMP4,	0
001456  2040		ISZ COUNT	/LAST FIELD FILLED?
001457  5655		JMP I COMP4	/NO--RETURN--
001460  1055		TAD XNUMB	/YES--OUT OF BLOCKS?
001461  7640		SZA CLA
001462  5655		JMP I COMP4	/NO--RETURN--
001463  1043		TAD COUNT3	/YES--GET ACTUAL # OF BLOCKS
001464  2255		ISZ COMP4	/INCREMENT RETURN ADDRESS
001465  5655		JMP I COMP4	/--RETURN--


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 24




		/COMPARE PORTION OF VERIFY ROUTINE

001466  0000	COMP,	0
001467  1555		TAD I [MWORDS	/SET NUMBER OF WORDS PER BLOCK COUNTER
001470  3042		DCA COUNT2
001471  7402	COMP2,	HALT		/SHOULD CONTAIN CDF N
001472  1411		TAD I X11	/GET CORRESPONDING WORDS FROM EACH BUFFER
001473  7041		CIA
001474  1412		TAD I X12
001475  6201	CDF0,	CDF 0
001476  7640		SZA CLA		/DO WORDS MATCH?
001477  5305		JMP ERR1	/NO--VERIFY ERROR
001500  2042	TRY,	ISZ COUNT2	/DONE WITH BLOCK?
001501  5271		JMP COMP2	/NO--CONTINUE
001502  2044		ISZ COUNT4	/DONE WITH ALL BLOCKS?
001503  5267		JMP COMP+1	/NO
001504  5666		JMP I COMP	/YES--RETURN--

001505  4577	ERR1,	JMS I [MESSGE
001506  1135		ERROR1		/*VERIFY ERROR BLOCK *
001507  1044		TAD COUNT4	/GET CURRENT BLOCK NUMBER
001510  7041		CIA
001511  1774		TAD I (BLOCKS	/FROM BLOCK THIS OPERATION STARTED WITH
001512  4331		JMS PRINT	 /PRINT 4 DIGIT BLOCK NUMBER
001513  4577		JMS I [MESSGE
001514  2505		ERROR6		/*UNIT *
001515  4553		JMS I [DECODE	/PRINT UNIT NUMBER
001516  4551	WAIT,	JMS I [LISTEN	/WAIT FOR RESPONSE
001517  3331		DCA PRINT
001520  4567		JMS I [CRLF
001521  1331		TAD PRINT
001522  1132		TAD [-224
001523  7450		SNA		/WAS IT CTRL/T?
001524  5531		JMP I [WRITEX	/YES--TRY AGAIN
001525  1130		TAD [2
001526  7640		SZA CLA		/WAS IT CTRL/R?
001527  5316		JMP WAIT	/NO--WAIT FOR A GOOD RESPONSE
001530  5300		JMP TRY		/YES--IGNORE AND CONTINUE


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 25






		/PRINT A 4 DIGIT OCTAL NUMBER
		/ENTER WITH NUMBER IN AC

001531  0000	PRINT,	0
001532  3577		DCA I [MESSGE	/TEMPORARY STORAGE
001533  1170		TAD [-4
001534  3575		DCA I [ANSWER	/SET DIGIT COUNTER
001535  1577		TAD I [MESSGE
001536  7004		RAL
001537  3567		DCA I [CRLF
001540  1567	FOUR,	TAD I [CRLF
001541  7004		RAL
001542  7006		RTL
001543  3567		DCA I [CRLF
001544  1567		TAD I [CRLF
001545  0173		AND [7
001546  1127		TAD [260
001547  4572		JMS I [TYPE	/PRINT ONE DIGIT
001550  2575		ISZ I [ANSWER	/DONE YET?
001551  5340		JMP FOUR	/NO
001552  5731		JMP I PRINT	/YES--RETURN--


		/CLEAN UP UNIT TABLES AFTER REWIND

001553  1032	CLEAN,	TAD LIST
001554  3031		DCA OPOINT
001555  1030		TAD OCOUNT
001556  7040		CMA
001557  3033		DCA OUTNUM	/SET POINTER AND COUNTER
001560  1431	CLEAN1,	TAD I OPOINT	/GET UNIT CODE
001561  0373		AND (4770	/MASK OUT EXTRANEOUS BITS
001562  3431		DCA I OPOINT	/REPLACE IT
001563  2031		ISZ OPOINT
001564  2033		ISZ OUTNUM	/DONE YET?
001565  5360		JMP CLEAN1	/NO
001566  5526		JMP I [DOIT	/YES--NEXT OPERATION




/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 26




001573  4770
001574  1715
001575  3677
001576  0010
001577  3700
	1600	PAGE

		/FILL ALL N FIELDS ONCE
		/ENTER WITH AC CLEAR
		/# OF BLOCKS FOR FIELD 0 IN FLD0
		/# OF BLOCKS FOR OTHERS IN FLDN
		/ADDRESSES OF BUFFERS IN BUF0, BUFN
		/R/W BIT (0 OR 4000) IN RW



001600  0000	READY,	0
001601  1125		TAD [IOTLOC-TABEND-1
001602  3040		DCA COUNT
001603  1124		TAD [IOTLOC
001604  3041		DCA COUNT1
001605  4561		JMS I [INSERT	/PUT PROPER IOT'S IN HANDLER
001606  1045		TAD UNIT
001607  7710		SPA CLA		/EVEN OR ODD UNIT NUMBER?
001610  7107		CLL IAC RTL	/ODD
001611  1123		TAD [ORIGIN	/EVEN
001612  3063		DCA ENTRY	/SET UP ENTRY TO HANDLER
001613  1050		TAD RW
001614  7421		MQL		/STORE UNIT BIT FOR LATER
001615  7040		CMA
001616  1037		TAD FIELDS	/SET COUNTER FOR # OF FIELDS
001617  3040		DCA COUNT
001620  7100		CLL
001621  1051		TAD FLD0	/ADJUST NUMBER OF BLOCKS TO
001622  4257		JMS SUB1	/TRANSFER DEPENDING ON NUMBER
001623  1051		TAD FLD0	/LEFT TO BE TRANSFERRED
001624  4266		JMS SUB2	/RESET FUNCTION WORD
001625  1053		TAD BUF0	/SET UP BUFFER POINTERS
001626  4277		JMS SUB3
001627  4307		JMS TRANS	/TRANSFER DATA--FIELD 0
001630  2040	ZOOM,	ISZ COUNT	/BEGINNING OF LOOP FOR EACH FIELD ABOVE 0
001631  7410		SKP		/DONE YET?
001632  5600		JMP I READY	/YES--RETURN--

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 27




001633  1037		TAD FIELDS
001634  7141		CIA CLL
001635  1040		TAD COUNT
001636  7001		IAC
001637  7004		RAL
001640  7006		RTL		/GET FIELD SETTING READY
001641  7421		MQL		/STORE IN MQ
001642  1313		TAD FUNCTN	/GET PREVIOUS FUNCTION WORD
001643  0160		AND [4000	/GET R/W BIT
001644  7501		MQA		/OR IN FIELD SETTING
001645  7421		MQL		/STORE
001646  7100		CLL
001647  1052		TAD FLDN	/ADJUST NUMBER OF BLOCKS TO TRANSFER
001650  4257		JMS SUB1
001651  1052		TAD FLDN
001652  4266		JMS SUB2	/AND RESET FUNCTION WORD
001653  1054		TAD BUFN
001654  4277		JMS SUB3	/SET UP BUFFER POINTERS
001655  4307		JMS TRANS	/TRANSFER DATA--FIELDS 1-N
001656  5230		JMP ZOOM	/FILL ANOTHER FIELD

001657  0000	SUB1,	0
001660  7041		CIA
001661  1055		TAD XNUMB
001662  7120		CLL CML		/SET LINK=1
001663  7500		SMA		/ARE THERE LESS BLOCKS LEFT THAN A FIELD FULL?
001664  3055		DCA XNUMB	/NO--REDUCE COUNT OF BLOCKS LEFT
001665  5657		JMP I SUB1	/YES-TRANSFER BLOCKS LEFT--RETURN--

001666  0000	SUB2,	0
001667  3041		DCA COUNT1	/LINK=1 IF BLOCKS LEFT, 0 IF NONE
001670  7420		SNL		/DONE WITH ALL BLOCKS YET?
001671  3055		DCA XNUMB	/YES--BUMP SWITCH
001672  1041		TAD COUNT1	/NO
001673  7002		BSW
001674  7501		MQA		/PUT # OF BLOCKS INTO FUNCTION WORD
001675  3313		DCA FUNCTN	/START REVERSE
001676  5666		JMP I SUB2	/--RETURN--


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 28




001677  0000	SUB3,	0
001700  3314		DCA BUFADD
001701  1056		TAD BLOCKN	/SET STARTING BLOCK NUMBER
001702  3315		DCA BLOCKS
001703  1041		TAD COUNT1
001704  1056		TAD BLOCKN
001705  3056		DCA BLOCKN	/RESET STARTING BLOCK FOR NEXT TIME
001706  5677		JMP I SUB3	/--RETURN--


		/CALL TO THE HANDLER

001707  0000	TRANS,	0
001710  4566		JMS I	[PARITY		/CHECK TELETYPE
001711  4542		JMS I [CHECK	/WAS ^C OR ^S TYPED?
001712  4463		JMS I ENTRY
001713  0000	FUNCTN,	0		/FUNCTION WORD
001714  0000	BUFADD,	0		/BUFFER ADDRESS
001715  0000	BLOCKS,	0		/STARTING BLOCK NUMBER
001716  5330		JMP ERR		/ERROR RETURN
001717  4566		JMS I	[PARITY		/CHECK TELETYPE
001720  4542		JMS I [CHECK	/WAS ^C OR ^S TYPED?
001721  7200		CLA
001722  1055		TAD XNUMB
001723  7640		SZA CLA		/DONE YET?
001724  5707		JMP I TRANS	/NO--RETURN--
001725  2040		ISZ COUNT
001726  5600		JMP I READY	/--RETURN--
001727  5600		JMP I READY	/--RETURN--

		/TRANSFER ERROR HANDLER

001730  7650	ERR,	SNA CLA		/FATAL ERROR?
001731  5343		JMP SELECT	/NO
001732  4577		JMS I [MESSGE	/YES
001733  1147		ERROR2		/*TAPE ERROR BLOCK *
001734  1777		TAD I (BLOCK
001735  4554		JMS I [PRINT	/PRINT BLOCK NUMBER
001736  4577		JMS I [MESSGE
001737  2505		ERROR6		/*UNIT *
001740  4354		JMS DECODE	/PRINT UNIT NUMBER
001741  4567		JMS I [CRLF
001742  5522		JMP I [REWIND
001743  4346	SELECT,	JMS ERR3
001744  2313		ISZ FUNCTN	/TURN AROUND AND TRY AGAIN
001745  5312		JMP FUNCTN-1


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 29




001746  0000	ERR3,	0
001747  4577		JMS I [MESSGE
001750  1160		ERROR3		/*SELECT ERROR UNIT *
001751  4354		JMS DECODE	/PRINT UNIT NUMBER
001752  4776' 		JMS CTRLR	/WAIT FOR CTRL/R
001753  5746		JMP I ERR3	/--RETURN--


		/DECODE UNIT NUMBER FOR PRINTING
		/PRINT UNIT NUMBER BEFORE RETURNING

001754  0000	DECODE,	0
001755  7100		CLL
001756  1045		TAD UNIT
001757  7004		RAL
001760  7421		MQL		/SAVE ROTATED CODE IN MQ
001761  7004		RAL
001762  7521		SWP		/SAVE EVEN/ODD BIT IN MQ
001763  7010		RAR		/WORK ON IOT CODE
001764  7012		RTR
001765  7001		IAC
001766  7040		CMA
001767  0173		AND [7
001770  7501		MQA		/INCLUDE EVEN/ODD BIT
001771  1127		TAD [260	/MAKE ASCII DIGIT
001772  4572		JMS I [TYPE
001773  5754		JMP I DECODE	/--RETURN--


001776  1020
001777  2004
	2000	PAGE


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 30




		/TD8E DECTAPE HANDLER

		/SLIGHTLY MODIFIED VERSION OF DEC-E8-UZTA-D
		/COPYRIGHT 1971  DIGITAL EQUIPMENT CORPORATION
		/	MAYNARD, MASSACHUSETTS 01754

		/THE CALLING SEQUENCE IS:
		/	JMS ENTRY
		/	FUNCTION WORD
		/	BUFFER ADDRESS
		/	STARTING BLOCK
		/	ERROR RETURN
		/	NORMAL RETURN (AC CLEAR)

		/FUNCTION WORD:
		/	BIT 0:		0=READ, 1=WRITE
		/	BITS 1-5:	# OF BLOCKS TO BE TRANSFERRED
		/	BITS 6-8:	FIELD OF BUFFER AREA
		/	BITS 9-10:	UNUSED
		/	BIT 11:		1=START FORWARD, 0=START REVERSE

		/ERRORS:
		/THE HANDLER DETECTS TWO TYPES OF ERRORS:
		/FATAL ERRORS:
		/	PARITY ERROR
		/	TIMING ERROR
		/	TOO GREAT A BLOCK NUMBER
		/FATAL ERRORS TAKE ERROR RETURN WITH AC=4000
		/NON-FATAL ERROR:
		/	SELECT ERROR (IMPROPER UNIT NUMBER OR NO UNIT NUMBER)
		/NON-FATAL ERROR TAKES ERROR RETURN WITH AC=0

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 31



	2000	PAGE

	0000	MFIELD=0
	2000	ORIGIN=.

002000  0000	DTA0,	0		/ENTRY POINT FROM UNIT 0
002001  7300		CLA CLL		/0 TO LINK
002002  5210		JMP DTA1X
002003  1000	C1000,	1000
002004  0000	DTA1,	0		/UNIT 2 ENTRY
002005  7320		CLA CLL CML	/1 TO LINK
002006  1204		TAD DTA1
002007  3200		DCA DTA0	/PICK UP ARGS AT DTA0
002010  7010	DTA1X,	RAR
002011  3361		DCA YUNIT	/LINK TO UNIT POSITION
002012  6214		RDF
002013  1354		TAD C6203	/GET DATA FIELD AND SETUP RETURN
002014  3351		DCA LEAVE
002015  1361		TAD YUNIT	/GET FUNCTION WORD
002016  6774	IOT4,	SDLC		/PUT FUNCTION INTO DATA REGISTER
002017  1600		TAD I	DTA0
002020  6775	IOT1,	SDLD
002021  7200		CLA
002022  1360		TAD MWORDS
002023  3356		DCA WCOUNT	/STORE MASTER WORD COUNT
002024  2200		ISZ DTA0	/TO BUFFER
002025  1600		TAD I DTA0
002026  3357		DCA BUFF
002027  2200		ISZ DTA0	/TO BLOCK NUMBER
002030  1600		TAD I DTA0
002031  3204		DCA BLOCK
002032  2200		ISZ DTA0	/POINT TO ERROR EXIT
002033  6203		CIF CDF MFIELD	/TO ROUTINES DATA FIELD
002034  6777	IOT2,	SDRD		/GET FUNCTION INTO AC
002035  7104		CLL RAL
002036  0305		AND CM200	/GET # PAGES TO XFER
002037  3364		DCA PGCT
002040  6777	IOT3,	SDRD
002041  0374	C374,	AND C70		/GET FIELD FOR XFER
002042  1353		TAD C6201	/FORM CDF N
002043  3377		DCA XFIELD	/IF=0 AND DF=N AT XFER.
002044  7346		CLA CLL CMA RTL
002045  3367		DCA TRYCNT	/3 ERROR TRIES
002046  6776	IOT5,	SDRC
002047  0366		AND C100
002050  7640		SZA CLA
002051  5345		JMP FATAL-1

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 32




002052  6777	IOT6,	SDRD		/PUT FUNCT INTO XFUNCT IN SECOND PG.
002053  3762		DCA I CXFUN
002054  1356		TAD WCOUNT
002055  3765		DCA I CXWCT
002056  6777	IOT7,	SDRD		/GET MOTION BIT TO LINK
002057  7110		CLL RAR
002060  5277		JMP GO		/AND START THE MOTION.
002061  6772	RWCOM,	SDST		/ANY CHECKSUM ERRORS?
002062  7640		SZA CLA		/OR CHECKSUM ERRORS?
002063  5337		JMP TRY3	/PLEASE NOTE THAT THE LINK IS ALWAYS
					/SET AT RWCOM. GETCHK SETS IT.
002064  1364		TAD PGCT	/NO ERROR..FINISHED XFER?
002065  1305		TAD CM200
002066  7450		SNA
002067  5344		JMP EXIT	/ALL DONE. GET OUT
002070  3364		DCA PGCT	/NEW PAGE COUNT
002071  2204		ISZ BLOCK	/NEXT BLOCK TO XFER
002072  1356		TAD WCOUNT	/FORM NEXT BUFFER ADDRESS
002073  7041		CIA
002074  1357		TAD BUFF
002075  3357		DCA BUFF
002076  7120		CLL CML		/FORCES MOTION FORWARD
002077  7232	GO,	CLA CML RTR	/LINK BECOMES MOTION BIT
002100  1203		TAD C1000
002101  1361		TAD YUNIT	/PUT IN 'GO' AND UNIT #
002102  6774	IOT8,	SDLC		/LOOK FOR BLOCK NO.
002103  4755		JMS I CRDQUD	/WAIT AT LEAST 6 LINES TO LOOK
002104  4755		JMS I CRDQUD
002105  7600	CM200,	7600		/COULD HAVE SAVED A LOC. HERE
002106  6771	SRCH,	SDSS
002107  5306		JMP .-1		/WAIT FOR SINGLE LINE FLAG
002110  6776	IOT9,	SDRC
002111  7106		CLL RTL		/DIRECTION TO LINK. INFO BITS 
					/ARE SHIFTED.
002112  0241		AND C374	/ISOLATE MARK TRACK BITS
002113  1331		TAD M110	/IS IT END ZONE?
002114  7450		SNA		/THE LINK STAYS SAME THRU THIS
002115  5333		JMP ENDZ
002116  1363		TAD M20		/CHECK FOR BLOCK MARK
002117  7640		SZA CLA
002120  5306		JMP SRCH
002121  6777	IOT10,	SDRD		/GET THE BLOCK NUMBER
002122  7430		SZL		/IF WE ARE IN REVERSE, LOOK FOR 3
					/BLOCKS BEFORE TARGET BLOCK. THIS
					/ALLOWS TURNAROUND AND UP TO SPEED.
002123  1375		TAD C3		/REVERSE
002124  7040		CMA
002125  1204		TAD BLOCK
002126  7040		CMA		/IS IT RIGHT BLOCK?
002127  7450		SNA
002130  5370		JMP FOUND	/YES..HOORAY!
002131  7670	M110,	SZL SNA CLA	/NO, BUT ARE WE HEADED FOR IT?

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 32-1

					/ABOVE SNA IS SUPERFLUOUS.
002132  5306		JMP SRCH	/YES
002133  6776	ENDZ,	SDRC		/WE ARE IN THE END ZONE
002134  7106		CLL RTL		/DIRECTION TO LINK
002135  7200		 CLA		/ARE WE IN REVERSE?
002136  5277		JMP GO		/YES..TURN US AROUND
		/IF WE ARE IN THE END ZONE GOING FORWARD, IT IS AN ERROR
002137  7300	TRY3,	CLL CLA
002140  2367		ISZ TRYCNT
002141  5277		JMP GO		/TRY 3 TIMES
002142  7300		CLL CLA
002143  5346		JMP FATAL		/LINK OFF MEANS AC=4000 ON RETURN
002144  2200	EXIT,	ISZ DTA0
002145  7120		CLL CML		/AC=0 ON NORMAL RETURN
002146  1361	FATAL,	TAD YUNIT
002147  6774		SDLC		/STOP THE UNIT
002150  7230		CLA CML RAR
002151  7402	LEAVE,	HLT
002152  5600		JMP I DTA0	/--RETURN--


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 33




002153  6201	C6201,	6201
002154  6203	C6203,	6203
002155  2314	CRDQUD,	RDQUAD
002156  0000	WCOUNT,	0
002157  0000	BUFF,	0
002160  0000	MWORDS,	0
002161  0000	YUNIT,	0
002162  2354	CXFUN,	XFUNCT
002163  7760	M20,	-20
002164  0000	PGCT,	0
002165  2362	CXWCT,	XWCT
002166  0100	C100,	100
002167  7775	TRYCNT,	-3
	2004	BLOCK=DTA1


	2170		*ORIGIN+170
002170  7630	FOUND,	SZL CLA		/RIGHT BLOCK. HOW ABOUT DIRECTION?
002171  5277		JMP GO		/WRONG..TURN AROUND
002172  1361		TAD YUNIT	/PUT UNIT INTO LINK
002173  7104		CLL RAL		/AC IS NOW 0
002174  0070	C70,	70		/********DON'T MOVE THIS!!!!******
002175  0003	C3,	3
002176  1357		TAD BUFF	/GET BUFFER ADDRESS
002177  7402	XFIELD,	HLT		/INTO NEXT PAGE

	2200		*ORIGIN+200
	2321		XUNIT=EQUFUN

002200  3361		DCA	XBUFF
002201  6776	IOT16,	SDRC
002202  6774	IOT17,	SDLC
002203  7010		RAR		/NOW GET UNIT #
002204  3321		DCA XUNIT
002205  6771	REVGRD,	SDSS
002206  5205		JMP REVGRD		/LOOK FOR REVERSE GUARD
002207  6776	IOT11,	SDRC
002210  0242		AND K77
002211  1355		TAD CM32	/IS IT REVERSE GUARD?
002212  7640		SZA CLA
002213  5205		JMP REVGRD	/NO.KEEP LOOKING
002214  1362		TAD XWCT
002215  3360		DCA WORDS	/WORD COUNTER
002216  1354		TAD XFUNCT	/GET FUNCTION  READ OR WRITE
002217  7700	K7700,	SMA CLA
002220  5255		JMP READ	/NEG. IS WRITE
002221  6776	WRITE,	SDRC
002222  0267		AND C300	/CHECK FOR WRITE LOCK AND SELECT ERROR
002223  7120		CLL CML		/LOCK OUT AND SELECT ARE AC 0 ERRORS
002224  7640		SZA CLA
002225  5752		JMP I CFATAL	/FATAL ERROR. LINK MUST BE ON
002226  4314		JMS RDQUAD	/NO ONE EVER USES THIS WORD!

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 33-1

002227  7600	C7600,	7600
002230  1356		TAD C1400
002231  1321		TAD XUNIT	/INITIATE WRITE MODE
002232  6774	IOT12,	SDLC
002233  7240		CLA CMA
002234  4305		JMS WRQUAD	/PUT 77 IN REVERSE CHECKSUM
002235  7240		CLA CMA
002236  3357		DCA CHKSUM
002237  1761	WRLP,	TAD I XBUFF	/GLORY BE! THE ACTUAL WRITE!
002240  4305		JMS WRQUAD
002241  2361		ISZ XBUFF	/BUMP CORE POINTER
002242  0077	K77,	77		/ABOVE MAY SKIP
002243  2360		ISZ WORDS	/DONE THIS BLOCK?
002244  5237		JMP WRLP	/NOT YET..LOOP A WHILE
002245  1354		TAD XFUNCT	/IS THE OPERATION FOR WDSBLK PER BLOCK?
002246  7112		CLL RTR		/IF NO, WRITE A 0 WORD
002247  7630		SZL CLA

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 34




002250  4305		JMS WRQUAD	/WRITE A WORD OF 0
002251  4336		JMS GETCHK	/DO THE CHECK SUM
002252  4305		JMS WRQUAD	/WRITE FORWARD CHECKSUM
002253  4305		JMS WRQUAD	/ALLOW CHECKSUM TO BE WRITTEN
002254  5753		JMP I CRWCOM


002255  4314	READ,	JMS RDQUAD
002256  4314		JMS RDQUAD
002257  4314		JMS RDQUAD	/SKIP CONTROL WORDS
002260  0242		AND K77
002261  1217		TAD K7700	/TACK 7700 ONTO CHECKSUM.
002262  3357		DCA CHKSUM	/CHECKSUM ONLY LOW 6 BITS ANYWAY
002263  4314	RDLP,	JMS RDQUAD
002264  4321		JMS EQUFUN	/COMPUT CHECKSUM AS WE GO
002265  3761		DCA I XBUFF	/IT GETS CONDENSED LATER
002266  2361		ISZ XBUFF
002267  0300	C300,	300		/PROTECTION
002270  2360		ISZ WORDS	/DONE THIS OP?
002271  5263		JMP RDLP	/NO SUCH LUCK
002272  1354		TAD XFUNCT	/IF OP WAS FOR WDSBLK-1, READ AND
002273  7112		CLL RTR		/CHECKSUM THE LAST TAPE WORD
002274  7620		SNL CLA
002275  5300		JMP RDLP2
002276  4314		JMS RDQUAD	/NOT NEEDED FOR WDSBLK/BLOCK
002277  4321		JMS EQUFUN	/CHECKSUM IT
002300  4314	RDLP2,	JMS RDQUAD	/READ CHECKSUM
002301  0217		AND K7700
002302  4321		JMS EQUFUN
002303  4336		JMS GETCHK	/GET SIX BIT CHECKSUM
002304  5753		JMP I CRWCOM

002305  0000	WRQUAD,	0		/WRITE OUT A 12 BIT WORD
002306  4321		JMS EQUFUN	/ADD THIS TO CHECKSUM
002307  6773	IOT13,	SDSQ		/SKIP ON QUADLINE FLAG
002310  5307		JMP .-1
002311  6775	IOT14,	SDLD		/LOAD DATA  ONTO BUS
002312  7200		CLA		/SDLD DOESN'T CLEAR AC
002313  5705		JMP I WRQUAD

002314  0000	RDQUAD,	0		/READ A 12 BIT WORD
002315  6773		SDSQ
002316  5315		JMP .-1
002317  6777	IOT15,	SDRD		/READ DATA
002320  5714		JMP I RDQUAD


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 35




002321  0000	EQUFUN,	0		/COMPUTE EQUIVALENCE CHECKSUM
002322  7040		CMA
002323  3363		DCA EQUTMP	/ACTUALLY CHECKSUMS ON DECTAPE ARE
002324  1363		TAD EQUTMP	/EQUIVALENCE OF ALL WORDS IN A RECORD
002325  0357		AND CHKSUM	/SIX BITS AT A TIME. BUT SINCE EQUIVALENCE
002326  7041		CIA		/IS ASSOCIATIVE, WE CAN DO IT 12
002327  7104		CLL RAL		/BITS AT A TIME AND CONDENSE LATER.
002330  1363		TAD EQUTMP	/THIS ROUTINE USES THESE IDENTITIES:
002331  1357		TAD CHKSUM	/A+B=(A.XOR.B)+2*(A.AND.B)
002332  3357		DCA CHKSUM	/A.EQU.B=.NOT.(A.XOR.B)=A.XOR.(.NOT.B)
002333  1363		TAD EQUTMP	/A.EQU.B=(A+(.NOT.B))-2*(A.AND.(.NOT.B))
002334  7040		CMA
002335  5721		JMP I EQUFUN

002336  0000	GETCHK,	0		/FORM 6 BIT CHECKSUM
002337  7200		CLA
002340  1357		TAD CHKSUM	
002341  7040		CMA
002342  7106		CLL RTL
002343  7006		RTL
002344  7006		RTL
002345  4321		JMS EQUFUN
002346  7320		CLA CLL CML	/FORCES LINK ON AT RWCOM
002347  1357		TAD CHKSUM
002350  0217		AND K7700
002351  5736		JMP I GETCHK

002352  2146	CFATAL,	FATAL
002353  2061	CRWCOM,	RWCOM
002354  0000	XFUNCT,	0
002355  7746	CM32,	-32
002356  1400	C1400,	1400
002357  0000	CHKSUM,	0
002360  0000	WORDS,	0
002361  0000	XBUFF,	0
002362  0000	XWCT,	0
002363  0000	EQUTMP,	0


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 36



	2400	PAGE
		/
		/
002400  0000	PARITY,	0
002401  6036		KRB
002402  0121		AND	[177
002403  1162		TAD	[200
002404  5600		JMP I	PARITY

		/IOT TABLES FOR TD8E SUBROUTINE

002405  2020	IOTLOC,	IOT1
002406  2034		IOT2
002407  2040		IOT3
002410  2016		IOT4
002411  2046		IOT5
002412  2052		IOT6
002413  2056		IOT7
002414  2061		RWCOM
002415  2102		IOT8
002416  2106		SRCH
002417  2110		IOT9
002420  2121		IOT10
002421  2133		ENDZ
002422  2147		FATAL+1
002423  2205		REVGRD
002424  2207		IOT11
002425  2221		WRITE
002426  2232		IOT12
002427  2307		IOT13
002430  2311		IOT14
002431  2315		RDQUAD+1
002432  2317		IOT15
002433  2201		IOT16
002434  2202	TABEND,	IOT17

	2435	UNITS=.
002435  0770		UNIT01
002436  0760		UNIT23
002437  0750		UNIT45
002440  0740		UNIT67

002441  1351	RTAB,	IOTR1
002442  1354		IOTR2
002443  1356		IOTR3
002444  1370		IOTR4
002445  0367		IOTR5
002446  0371		IOTR6


		/IOT TABLES FOR WORDS PER BLOCK ROUTINE

002447  0637	TABLE1,	IOTX1

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 36-1

002450  0662		IOTX2
002451  0642		IOTX3
002452  0644		IOTX4
002453  0754		IOTX5
002454  0756		IOTX6
002455  0621		IOTX7
002456  0623	END1,	IOTX8


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 37



002457  0622	MESSG4,	TEXT @FROM UNIT:@
002460  1715
002461  4025
002462  1611
002463  2472
002464  0000
002465  2417	MESSG5,	TEXT @TO UNITS:@
002466  4025
002467  1611
002470  2423
002471  7200
002472  1114	ERROR5,	TEXT @ILLEGAL FORMAT UNIT @
002473  1405
002474  0701
002475  1440
002476  0617
002477  2215
002500  0124
002501  4025
002502  1611
002503  2440
002504  0000
002505  4025	ERROR6,	TEXT @ UNIT @
002506  1611
002507  2440
002510  0000
002511  1114	ERROR4,	TEXT @ILLEGAL RESPONSE@
002512  1405
002513  0701
002514  1440
002515  2205
002516  2320
002517  1716
002520  2305
002521  0000


/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 38




	2600	PAGE
		/ONCE ONLY CODE

002600  4777	END,	JMS I (QUEST
002601  2646		MESSG2		/@HIGHEST FIELD AVAILABLE:@
002602  7701		ACL
002603  0173		AND [7
002604  7041		CIA
002605  3037		DCA FIELDS
002606  1376		TAD (CDF
002607  3220		DCA CDF00
002610  1037		TAD FIELDS
002611  7450		SNA		/MORE THAN 1 FIELD??
002612  5237		JMP LIM		/NO--NO PROBLEM
002613  3041		DCA COUNT1	/YES--ARE THEY ALL PRESENT?
002614  1220	NEXT,	TAD CDF00
002615  1375		TAD (10
002616  3220		DCA CDF00	/SET FOR DATA FIELD CHANGE
002617  1374		TAD (HLT
002620  6201	CDF00,	CDF
002621  3775		DCA I (10	/TRY LOCATION 10
002622  1775		TAD I (10
002623  6201		CDF 0
002624  7041		CIA
002625  1374		TAD (HLT
002626  7650		SNA CLA		/IS FIELD THERE?
002627  5235		JMP NEXT1	/YES--TRY NEXT ONE
002630  4577		JMS I [MESSGE	/NO
002631  2511		ERROR4		/ILLEGAL RESPONSE
002632  4567		JMS I [CRLF	/CARRIAGE RETURN/LINE FEED
002633  3040		DCA COUNT	/CLEAR COUNT
002634  5200		JMP END		/TRY AGAIN
002635  2041	NEXT1,	ISZ COUNT1	/DONE YET?
002636  5214		JMP NEXT	/NO

002637  1373	LIM,	TAD (LIMIT-END	/SET BEGINNING OF VERIFY BUFFER
002640  7110		CLL RAR
002641  1176		TAD [END
002642  3062		DCA END0
002643  1372		TAD (NOP
002644  3771		DCA I (START1-1
002645  5770		JMP I (START1
002646  1011	MESSG2,	TEXT @HIGHEST FIELD AVAILABLE:@
002647  0710
002650  0523
002651  2440
002652  0611
002653  0514
002654  0440
002655  0126
002656  0111
002657  1401

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 38-1

002660  0214
002661  0572
002662  0000

002770  0207
002771  0206
002772  7000
002773  5000
002774  7402
002775  0010
002776  6201
002777  0336
000121  0177
000122  1313
000123  2000
000124  2405
000125  7750
000126  1200
000127  0260
000130  0002
000131  1254
000132  7554
000133  1246
000134  6000
000135  7756
000136  0366
000137  3000
000140  2441
000141  7772
000142  0457
000143  1600
000144  5000
000145  0204
000146  1553
000147  0336
000150  7556
000151  0450
000152  1020
000153  1754
000154  1531
000155  2160
000156  1000
000157  1746
000160  4000
000161  0535
000162  0200
000163  0100
000164  0077
000165  1027
000166  2400
000167  0317
000170  7774
000171  0212
000172  0527
000173  0007

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 38-2

000174  7770
000175  0400
000176  2600
000177  0471
	0000	FIELD 0
	0200	*200

		$

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 39

AGAIN  0217      DTA1X  2010      IOT13  2307      OUTNUM 0033
ALLDUN 1215      END    2600      IOT14  2311      OUTPUT 0021
ANSWER 0400      ENDZ   2133      IOT15  2317      PARITY 2400
BAD    0440      END0   0062      IOT16  2201      PGCT   2164
BLOCK  2004      END1   2456      IOT17  2202      PRINT  1531
BLOCKN 0056      ENTRY  0063      IOT2   2034      QUEST  0336
BLOCKS 1715      EQUFUN 2321      IOT3   2040      QUEST1 0345
BUFADD 1714      EQUTMP 2363      IOT4   2016      RDLP   2263
BUFF   2157      ERR    1730      IOT5   2046      RDLP2  2300
BUFN   0054      ERROR1 1135      IOT6   2052      RDQUAD 2314
BUF0   0053      ERROR2 1147      IOT7   2056      READ   2255
CDF0   1475      ERROR3 1160      IOT8   2102      READX  1220
CDF00  2620      ERROR4 2511      IOT9   2110      READY  1600
CFATAL 2352      ERROR5 2472      K77    2242      REPEAT 1027
CHAR   0526      ERROR6 2505      K7700  2217      REVGRD 2205
CHECK  0457      ERR1   1505      LEAVE  2151      REWIND 1313
CHKSUM 2357      ERR3   1746      LIM    2637      RHALF  0500
CLEAN  1553      ERR4   0325      LIMIT  7600      RLIST  1316
CLEAN1 1560      ERR5   0744      LIST   0032      RTAB   2441
CLEAR  0436      EXIT   2144      LISTEN 0450      RUNIT  1325
CM200  2105      FATAL  2146      LNEXT  0476      RW     0050
CM32   2355      FIELDS 0037      LOC    0525      RWCOM  2061
COMP   1466      FINDER 0524      MESSGE 0471      SELECT 1743
COMP2  1471      FLDN   0052      MESSG1 0067      SELERR 0627
COMP3  1435      FLD0   0051      MESSG2 2646      SEMI   0443
COMP4  1455      FOUND  2170      MESSG3 0076      SETUP  0600
CONT   1014      FOUR   1540      MESSG4 2457      SET2   0651
COUNT  0040      FUNCTN 1713      MESSG5 2465      SET3   0700
COUNT1 0041      GETCHK 2336      MESSG6 1040      SET4   0606
COUNT2 0042      GO     2077      MESSG7 1052      SET5   0674
COUNT3 0043      HALT   7402      MESSG8 1064      SKIP   0437
COUNT4 0044      IBLOCK 0034      MESSG9 1101      SKIPQ  0366
CRDQUD 2155      INB    0064      MESS10 1117      SKIP4  0753
CRLF   0317      INPUT  0020      MESS11 1122      SRCH   2106
CRWCOM 2353      INSERT 0535      MFIELD 0000      START  0200
CTRLC  0470      INS1   0551      MNUM   0343      START1 0207
CTRLR  1020      IOTLOC 2405      MORE   0404      SUB    0726
CXFUN  2162      IOTR1  1351      MORE2  0224      SUB1   1657
CXWCT  2165      IOTR2  1354      MWORDS 2160      SUB2   1666
C100   2166      IOTR3  1356      M110   2131      SUB3   1677
C1000  2003      IOTR4  1370      M20    2163      SWITCH 0412
C1400  2356      IOTR5  0367      M200   1371      TABEND 2434
C3     2175      IOTR6  0371      NEXT   2614      TABLE1 2447
C300   2267      IOTX1  0637      NEXT1  2635      TABX   0365
C374   2041      IOTX2  0662      NUMBER 0036      TRANS  1707
C6201  2153      IOTX3  0642      NUMB1  0057      TRY    1500
C6203  2154      IOTX4  0644      NUMB2  0060      TRYCNT 2167
C70    2174      IOTX5  0754      OALL   0255      TRY3   2137
C7600  2227      IOTX6  0756      OBLOCK 0035      TYPE   0527
DECODE 1754      IOTX7  0621      OCOUNT 0030      UNIT   0045
DIV1   1275      IOTX8  0623      OHOLD  0066      UNITNO 0352
DIV2   1301      IOT1   2020      OPOINT 0031      UNITS  2435
DOIT   1200      IOT10  2121      ORIGIN 2000      UNIT01 0770
DTA0   2000      IOT11  2207      OUTB   0065      UNIT23 0760
DTA1   2004      IOT12  2232      OUTN   1246      UNIT45 0750

/TD8E DECTAPE COPY, V50			  PAL8-V50Y 03-JAN-23 PAGE 39-1

UNIT67 0740      
VB     0061      
VERF   0046      
VERFQ  1000      
VERF1  1311      
VERF1A 1016      
VERF2  1274      
VERF2A 1017      
VERIFY 1400      
WAIT   1516      
WCOUNT 2156      
WDCNT  0047      
WHOLE  0306      
WORDS  2360      
WRITE  2221      
WRITEX 1254      
WRLP   2237      
WRQUAD 2305      
XBUFF  2361      
XFIELD 2177      
XFUNCT 2354      
XNUMB  0055      
XUNIT  2321      
XWCT   2362      
X11    0011      
X12    0012      
YES    1010      
YUNIT  2161      
ZOOM   1630      



ERRORS DETECTED: 0
LINKS GENERATED: 2