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


/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 1

		/LIBRA: F4 LIBRARIAN, V50A
		/
		/
		/
		/
		/
		/
		/
		//
		/
		/
		/
		/
		/COPYRIGHT (C) 1974, 1975
		/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
		/AND WVDM 2020
		/
		/
		/
		/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.
		/
		/
		/
		/
		/
		/

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 2



		/LIBRA: FORTRAN IV LIBRARIAN
		/
		/
		/	BORN OF JUD LEONARD, UNDER THE
		/	SIGN FOR WHICH IT IS NAMED.
		/
		/
		/ CHANGES FOR V23
		/ .PRINT VERSION NUMBER
		/ .ACCEPT INPUT FROM CONSOLES WITHOUT PARITY
		/
		/
		/ CHANGES FOR OS/8 V3D BY PAULA TIRAK
		/ .CHANGED VERSION NUMBER TO 24A
		/ .PUT IN NEW DATE ALGORITHM
		/ .NO LONGER MISNAMES THE SECOND OUTPUT FILE
		/
		/
		/	OS/8 CONSTANTS:
	0050	VERS=50
	0302	PATCH="B
		/
	0001	FETCH=1
	0002	LOOKUP=2
	0003	ENTER=3
	0004	CLOSE=4
	0005	DECODE=5
	0006	CHAIN=6
	0007	ERROR=7
	0010	USRIN=10
	0011	USROUT=11
		/
	7600	OUTF1=7600	/LIBRARY
	7605	OUTF2=7605	/CATALOG LISTING
	7612	OUTF3=7612	/UNUSED
	7617	INF=7617
		/
	7642	EQHI=7642
	7643	SWATOL=7643
	7644	SWMTOX=7644
	7645	SWYTO9=7645
	7646	EQLO=7646
	7647	DHRES=7647	/HANDLER RESIDENCY TABLE
	7666	SYSDAT=7666	/SYSTEM DATE
	7760	DCTLW=7760	/DEVICE CONTROL WORD TABLE
		/	DEVICE CONTROL WORDS HAVE THE FORM:
		/	BIT 0	FILE STRUCTURED
		/	BIT 1	READ ONLY
		/	BIT 2	WRITE ONLY
		/	BITS 3-8 DEVICE TYPE
		/	BITS 9-11 DIR BLOCK OF CURRENT TENTATIVE FILE
		/
		/	INTERNAL DEFINITIONS:

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 2-1

	0000	F0=00
	0010	F1=10
	2000	CATBUF=2000	/IN FIELD 1
	0001	CBUFS=1		/NUMBER OF BUFFERS FOR CATALOG
	2400	MODBUF=2400	/LIKEWISE
	0012	MBUFS=12	/BUFFERS FOR MODULE
	7200	ODEVH=7200	/OUTPUT DEVICE HANDLER (ROOM FOR 2-PAGE)
	6600	IDEVH=6600	/INPUT DEVICE HANDLER

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 3



		/
		/       PAGE 0 FOR LIBRA
		/
	0001	        *1
000001  0000	TMP1,   0
000002  0000	TMP2,   0       /SOME TEMPS
000003  0000	TMP3,   0
000004  0000	TMP4,   0
000005  0000	TMP5,   0
000006  0000	TMP6,   0
000007  0000	TMP7,   0
000010  0000	X0,     0       /AUTO-INDEX
000011  0000	X1,     0
000012  0000	X2,     0
000013  0000	X3,     0
000014  0000	X4,     0
000015  0000	X5,     0
000016  0000	X6,     0
000017  0000	X7,     0
000020  0200	USR,    200     /CURRENT USR CALL ADDRESS
		                /LIBRA ASSUMES USR ALWAYS PRESENT
000021  7200	LIBDVH, ODEVH   /ADDRESS OF LIBRARY DEVICE HANDLER
000022  0001	LIBU,   1       /UNIT CONTAINING LIBRARY; INITIALLY SYS:
000023  0000	CATLEN, 0       /LENGTH OF CATALOG
000024  0000	CATBLK, 0       /CURRENT CATALOG BLOCK IN CORE
000025  0000	LAVAIL, 0       /NEXT AVAILABLE LIBRARY BLOCK
000026  0617	LIBNAM, TEXT    "FORLIBRL"
000027  2214
000030  1102
000031  2214
000032  0000
	0032		*.-1
000032  7617	INFP,   INF     /CURRENT PLACE IN INPUT FILE LIST
000033  0000	MODU,   0       /UNIT CONTAINING CURRENT MODULE
000034  6600	MODDVH, IDEVH   /INPUT DEVICE HANDLER ADDRESS
000035  0000	MODLEN, 0       /LENGTH OF THIS MODULE
000036  0000	MODBLK, 0       /FIRST BLOCK OF MODULE
000037  0000	INLSW,  0       /NON-ZERO IF IN LIBRARY INPUT
000040  0000	INFST,  0       /FIRST BLOCK OF INPUT FILE
000041  0000	INBLK,  0       /NEXT INPUT BLOCK NUMBER
000042  0000	THSBLK, 0       /READIN CONTROL
000043  0000	FULFLG,	0	/-1 IF CAT FULL

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 4



000044  0000	ENAM1,	0
000045  0000	ENAM2,	0	/HOLDER FOR ESD NAMES
000046  0000	ENAM3,	0
000047  0000		0	/TEXT STOPPER FOR ENAME
000050  0000	ESDCTR,	0
000051  2000	PCAT,	CATBUF	/POINTER TO CURRENT CATALOG BLOCK
000052  7777	INCLUD,	-1	/SW FOR NAME INCLUDED IN CATALOG
000053  0001	CHANGD,	1	/0 IF CAT BLOCK MODIFIED
000054  2400	PMOD,	MODBUF	/POINTER TO CURRENT MODULE BLOCK
		/
000055  0000	TTFLAG,	0	/NON-ZERO WHEN TTY HAS INITIALIZED
000056  3200	PCHR,	TTO	/OUTPUT ROUTINE
000057  0000	TTPOS,	0	/TTY POSITION COUNTER
000060  0000	CATCNT,	0
000061  0000	IOERR,	0
000062  7421		7421	/ERROR CODE TO MQ
000063  5464		JMP I	.+1
000064  0263		IOMES	/LOG THE ERROR

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 5



		/	LIBRA MAIN CONTROL
		/
	0177		*177		/MAKES IT EASY TO CALL START
000177  6201	START,	CDF	F0
000200  4777' 		JMS	TTWAIT	/ALLOW TTY TO COMPLETE
000201  6212		CIF	F1
000202  4420		JMS I	USR
000203  0005		DECODE
000204  2214	TXTRL,	2214		/RL DEFAULT EXT
000205  1376		TAD	(INF	/RESET INPUT FILE POINTER
000206  3032		DCA	INFP
000207  1375		TAD	(TTO	/AND IO DEVICE
000210  3056		DCA	PCHR
000211  3043		DCA	FULFLG
000212  6211		CDF	F1
000213  1774		TAD I	(OUTF1
000214  7450		SNA		/NEW LIBRARY SPECIFIED?
000215  5233		JMP	LASTLB	/NO, USE LAST ONE
000216  3022		DCA	LIBU	/GET LIBRARY UNIT
000217  1374		TAD	(OUTF1
000220  3010		DCA	X0
000221  1410		TAD I	X0
000222  3026		DCA	LIBNAM	/MOVE
000223  1410		TAD I	X0	/IN
000224  3027		DCA	LIBNAM+1 /NEW
000225  1410		TAD I	X0	/NAME
000226  3030		DCA	LIBNAM+2
000227  1410		TAD I	X0
000230  7450		SNA
000231  1204		TAD	TXTRL	/IF NO EXT, FORCE .RL
000232  3031		DCA	LIBNAM+3
000233  1022	LASTLB,	TAD	LIBU	/REGET UNIT
000234  0373		AND	(17
000235  1372		TAD	(DCTLW-1	/ADDRESS DEV CTL TABLE
000236  3001		DCA	TMP1
000237  1401		TAD I	TMP1
000240  6201		CDF	F0
000241  7700		SMA CLA		/IS DEVICE FILE-STRUCTURED?
000242  5257		JMP	NOTFS	/NO, BOMB
000243  1371		TAD	(ODEVH!1
000244  3252		DCA	OHADDR	/ALLOW 2-PAGE HANDLER
000245  1022		TAD	LIBU
000246  0373		AND	(17
000247  6212		CIF	F1
000250  4420		JMS I	USR	/GET THE HANDLER
000251  0001		FETCH
000252  7201	OHADDR,	ODEVH!1
000253  4061		JMS	IOERR	/YOU'RE KIDDING
000254  1252		TAD	OHADDR	/NOW THE REAL ADDRESS
000255  3021		DCA	LIBDVH
000256  5770' 		JMP	ZTEST

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 6



000257  4767' 	NOTFS,	JMS	TTOTXT
000260  4421		FLSTR-1
000261  4766' 		JMS	CRLF
000262  5177		JMP	START
		/
000263  7200	IOMES,	CLA
000264  1375		TAD	(TTO
000265  3056		DCA	PCHR	/ENSURE IT COMES OUT ON TTY
000266  4767' 		JMS	TTOTXT
000267  4624		IOMSG-1
000270  4766' 		JMS	CRLF
000271  5177		JMP	START
000366  3310
000367  3277
000370  0400
000371  7201
000372  7757
000373  0017
000374  7600
000375  3200
000376  7617
000377  3217
	0400		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 7



000400  6211	ZTEST,	CDF	F1	/FIND OR CREATE LIB.
000401  1777		TAD I	(SWYTO9	/GET SWITCH WORD
000402  0376		AND	(2000	/TEST FOR /Z
000403  6201		CDF	F0
000404  7640		SZA CLA
000405  5775' 		JMP	NEWLIB	/YES, ENTER NEW ONE
000406  4774' 	OLDLIB,	JMS	FNDLIB	/LOOKUP THE LIBRARY
000407  0002		LOOKUP
000410  5775' 		JMP	NEWLIB	/COULDN'T FIND IT
		/
000411  1773' 		TAD	LIBBLK	/FIRST BLOCK OF LIBRARY
000412  3772' 		DCA	ZCATB
000413  1371		TAD	(CBUFS+MBUFS^200!F1
000414  3770' 		DCA	ZCATC	/READ ALL YOU CAN
000415  4767' 		JMS	ZCAT	/DO THE READ
000416  6211		CDF	F1
000417  1776		TAD I	(CATBUF	/LOOK AT CONTROL WORD
000420  7110		CLL RAR
000421  7640		SZA CLA		/IS IT A LIBRARY?
000422  5304		JMP	NOTLIB	/NO, ERROR
000423  1766		TAD I	(CATBUF+3
000424  6201		CDF	F0
000425  3023		DCA	CATLEN	/LENGTH IN BLOCKS
000426  1773' 		TAD	LIBBLK
000427  3025		DCA	LAVAIL	/WILL BE UPDATED DURING SCAN
000430  1025		TAD	LAVAIL
000431  3024		DCA	CATBLK	/CURRENT BLOCK IN BUFFER
000432  1023		TAD	CATLEN
000433  7041		CIA
000434  3002		DCA	TMP2	/COUNTER
000435  1365	CSLOOP,	TAD	(CBUFS+MBUFS
000436  1002		TAD	TMP2
000437  7500		SMA		/WILL THE REST FIT IN BUFFER?
000440  5251		JMP	CSLAST	/YES
000441  3002		DCA	TMP2
000442  1364		TAD	(-CBUFS-MBUFS^100
000443  3001		DCA	TMP1	/ENTRIES NOW IN CORE
000444  4263		JMS	SCAT	/SCAN CATALOG
000445  1772' 		TAD	ZCATB	/NEXT BLOCK WE'LL READ
000446  3024		DCA	CATBLK
000447  4767' 		JMS	ZCAT	/READ SOME
000450  5235		JMP	CSLOOP

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 8



000451  7041	CSLAST,	CIA		/NO OF BLOCKS WE DON'T NEED
000452  1365		TAD	(CBUFS+MBUFS
000453  4763' 		JMS	R6L	/NO OF ENTRIES WE CAN LOOK AT
000454  7041		CIA
000455  3001		DCA	TMP1
000456  4263		JMS	SCAT	/LOOK FOR END
000457  4762' 	FULCAT,	JMS	TTOTXT	/RAN OFF THE END
000460  4561		CATFUL-1
000461  4761' 		JMS	CRLF	/**
000462  5760' 		JMP	LCLOSE
		/
000463  0000	SCAT,	0
000464  1357		TAD	(CATBUF-1
000465  3010		DCA	X0
000466  6211	SCLOOP,	CDF	F1
000467  1410		TAD I	X0
000470  7040		CMA		/TEST FOR END
000471  7650		SNA CLA
000472  5756' 		JMP	GETINF	/THAT'S IT
000473  2010		ISZ	X0
000474  2010		ISZ	X0	/IGNORE REST OF NAME
000475  1410		TAD I	X0	/GET LENGTH
000476  1025		TAD	LAVAIL	/ADD TO ST BLOCK OF FREE AREA
000477  3025		DCA	LAVAIL
000500  2001		ISZ	TMP1
000501  5266		JMP	SCLOOP
000502  6201		CDF	F0
000503  5663		JMP I	SCAT	/GO FOR NEXT BUFFER LOAD
		/
000504  4755' 	NOTLIB,	JMS	PRLBNM	/PRINT LIBRARY NAME
000505  4762' 		JMS	TTOTXT
000506  4522		UNLIB-1
000507  4761' 		JMS	CRLF
000510  5177		JMP	START
000555  3664
000556  1000
000557  1777
000560  2400
000561  3310
000562  3277
000563  3272
000564  6500
000565  0013
000566  2003
000567  0703
000570  0707
000571  2610
000572  0711
000573  0736
000574  0723
000575  0600
000576  2000
000577  7645

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 8-1

	0600		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 9



000600  4323	NEWLIB,	JMS	FNDLIB
000601  0003		ENTER
000602  4061		JMS	IOERR
000603  1022		TAD	LIBU
000604  0377		AND	(7760
000605  7112		CLL RTR
000606  7012		RTR
000607  7450		SNA		/DID HE GIVE A LENGTH?
000610  7126		STL RTL		/NO, USE 2
000611  3023		DCA	CATLEN
000612  6211		CDF	F1
000613  1776		TAD I	(EQLO	/HOW MANY EXTRA BLOCKS WANTED
000614  6201		CDF	F0
000615  1023		TAD	CATLEN	/PLUS CATALOG REQUIREMENT
000616  7100		CLL
000617  1337		TAD	LIBLEN	/MINUS AVAILABLE LENGTH
000620  7630		SZL CLA		/CHECK FOR ENUF ROOM
000621  5345		JMP	LSZERR	/NO ROOM, GIVE MESSAGE
		/
		/	WRITE EMPTY CATALOG
		/
000622  1375		TAD	(CATBUF-1
000623  3010		DCA	X0
000624  1374		TAD	(-MBUFS-CBUFS^400
000625  3001		DCA	TMP1
000626  6211		CDF	F1
000627  3410		DCA I	X0
000630  2001		ISZ	TMP1
000631  5227		JMP	.-2
000632  1375		TAD	(CATBUF-1	/RESET FOR LATER USE
000633  3010		DCA	X0
000634  7240		CLA CMA
000635  1023		TAD	CATLEN
000636  7550		SPA SNA		/MORE THAN ONE?
000637  5260		JMP	CATB0	/JUST ONE
000640  7041		CIA
000641  2311		ISZ	ZCATB	/START WITH SECOND CAT BLOCK
000642  7100	ZCLOOP,	CLL
000643  1373		TAD	(MBUFS+CBUFS
000644  3001		DCA	TMP1
000645  7430		SZL		/FULL WRITE?
000646  1001		TAD	TMP1	/NO
000647  7041		CIA
000650  1373		TAD	(MBUFS+CBUFS
000651  4772' 		JMS	R6R
000652  1371		TAD	(4000!F1
000653  3307		DCA	ZCATC	/SET CONTROL
000654  4303		JMS	ZCAT
000655  1001		TAD	TMP1
000656  7510		SPA
000657  5242		JMP	ZCLOOP	/MORE TO GO
000660  6211	CATB0,	CDF	F1
000661  7201		CLA IAC		/1 IS LIBRARY CODE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 9-1

000662  3410		DCA I	X0
000663  1370		TAD	(VERS
000664  3410		DCA I	X0	/MARK LIBRA VERSION #
000665  1337		TAD	LIBLEN	/JUST A GUESS
000666  7041		CIA
000667  3410		DCA I	X0
000670  1023		TAD	CATLEN
000671  3410		DCA I	X0
000672  7240		CLA CMA		/END OF CAT INDICATOR
000673  3410		DCA I	X0	/MARKS FIRST AVAIL SLOT
000674  6201		CDF	F0
000675  3053		DCA	CHANGD	/FORCE A WRITE ON THIS ONE
000676  1311		TAD	ZCATB
000677  3025		DCA	LAVAIL
000700  1336		TAD	LIBBLK	/LIBRARY START BLOCK
000701  3024		DCA	CATBLK	/IS CURRENTLY IN BUFFER
000702  5767' 		JMP	GETINF	/BEGIN
		/
000703  0000	ZCAT,	0
000704  6201		CDF	F0
000705  4766' 		JMS	CCHK	/LOOKOUT FOR CONTROL C
000706  4421		JMS I	LIBDVH
000707  0010	ZCATC,	F1
000710  2000		CATBUF
000711  0000	ZCATB,	0
000712  4061		JMS	IOERR
000713  1307		TAD	ZCATC
000714  4765' 		JMS	R6L
000715  0364		AND	(17
000716  1311		TAD	ZCATB
000717  3311		DCA	ZCATB
000720  2053		ISZ	CHANGD	/SET UNMODIFIED SW
000721  5703		JMP I	ZCAT
000722  5320		JMP	.-2
		/
000723  0000	FNDLIB,	0
000724  1723		TAD I	FNDLIB
000725  3335		DCA	USRCOD
000726  2323		ISZ	FNDLIB
000727  1363		TAD	(LIBNAM
000730  3336		DCA	LIBBLK
000731  1022		TAD	LIBU
000732  0364		AND	(17
000733  6212		CIF	F1
000734  4420		JMS I	USR
000735  0000	USRCOD,	0
000736  0026	LIBBLK,	LIBNAM
000737  0000	LIBLEN,	0		/NEG, REMEMBER
000740  5723		JMP I	FNDLIB	/COULD'T DO IT
000741  1336		TAD	LIBBLK	/FIRST BLOCK
000742  3311		DCA	ZCATB	/OF CATALOG
000743  2323		ISZ	FNDLIB
000744  5723		JMP I	FNDLIB
000745  4762' 	LSZERR,	JMS	TTOTXT
000746  4450		SMALL-1

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 9-2

000747  4761' 		JMS	CRLF
000750  5177		JMP	START	/GO FOR MORE
000761  3310
000762  3277
000763  0026
000764  0017
000765  3272
000766  3230
000767  1000
000770  0050
000771  4010
000772  3265
000773  0013
000774  2400
000775  1777
000776  7646
000777  7760
	1000		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 10



		/
		/	SETUP POINTERS AND THINGS FOR NEXT INPUT MODULE
		/
001000  7240	GETINF,	CLA CMA
001001  3052		DCA	INCLUD	/SET NO-NAME-INCLUDED SW
001002  1037		TAD	INLSW	/ARE WE GETTING INPUT FROM A LIBR?
001003  7640		SZA CLA
001004  5777' 		JMP	INLIB	/YES-GET NEXT MODULE THEREIN
001005  6211	NXTINF,	CDF	F1
001006  1432		TAD I	INFP	/UNIT AND LEN OF NEXT IN FILE
001007  7440		SZA		/IS THERE ONE?
001010  5231		JMP	FTCHIN	/YES
001011  1776		TAD I	(SWATOL
001012  0375		AND	(1000	/TEST FOR /C
001013  6201		CDF	F0
001014  7650		SNA CLA
001015  5774' 		JMP	LCLOSE	/NO MORE
001016  4773' 		JMS	SAVRES	/PRESERVE DEV HANDLER RESIDENCY
001017  4772' 		JMS	TTWAIT	/FINISH ANY TYPING
001020  6212		CIF	F1
001021  4420		JMS I	USR	/NEW LINE CONTINUES OLD
001022  0005		DECODE
001023  2214		2214		/RL DEFAULT EXT
001024  0000		0		/DO NOT DELETE TENTATIVE FILES
001025  4771' 		JMS	RSTRES	/RESTORE RESIDENCY TABLE
001026  1370		TAD	(INF
001027  3032		DCA	INFP	/RESET INPUT FILE POINTER
001030  5205		JMP	NXTINF	/TRY AGAIN

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 11



001031  3033	FTCHIN, DCA     MODU    /UNIT CONTAINING INPUT MOD
001032  2032	        ISZ     INFP
001033  1432	        TAD I   INFP
001034  3040	        DCA     INFST   /START OF INPUT FILE
001035  2032	        ISZ     INFP
001036  1040	        TAD     INFST
001037  3036	        DCA     MODBLK  /IN THIS CASE, FILE=MODULE
001040  1033	        TAD     MODU
001041  0367	        AND     (7760
001042  7041	        CIA
001043  7112	        CLL RTR
001044  7012	        RTR
001045  3035	        DCA     MODLEN
001046  1366	        TAD     (IDEVH!1
001047  3256	        DCA     INDVH   /TENTATIVE HANDLER ADDR
001050  6201	        CDF     F0
001051  1033	        TAD     MODU
001052  0365	        AND     (17
001053  6212	        CIF     F1
001054  4420	        JMS I   USR
001055  0001	        FETCH
001056  6601	INDVH,  IDEVH!1         /TENTATIVE INPUT HANDLER ADDR
001057  4061	        JMS     IOERR   /DON'T GIVE ME THAT
001060  1256	        TAD     INDVH
001061  3034	        DCA     MODDVH  /DEVICE HANDLER ADDRESS
001062  3042	        DCA     THSBLK  /FORCE READIN TO READ
001063  1036	LUKMOD, TAD     MODBLK  /FIRST BLOCK OF MODULE
001064  3041	        DCA     INBLK   /INITIALIZE READIN
001065  4764' 	        JMS     READIN  /GET FIRST BLOCK
001066  6211	        CDF     F1
001067  7240	        CLA CMA         /-1
001070  1454	        TAD I   PMOD    /LOOK AT IDENTIFIER
001071  6201	        CDF     F0
001072  7450	        SNA
001073  5321	        JMP     GOTLIB  /ITS A LIBRARY
001074  7112	        CLL RTR
001075  7640	        SZA CLA         /IS IT A MODULE
001076  5315	        JMP     BADINF  /BAD INPUT
001077  1763' 	        TAD     LIBBLK  /MAKE SURE
001100  7041		CIA
001101  1762' 	        TAD     LIBLEN  /THAT MODULE
001102  1025	        TAD     LAVAIL  /FITS IN LIBRARY
001103  7100	        CLL
001104  7450		SNA		/CHECK FOR TOO LONG HERE TOO**
001105  5311		JMP	OVFLO	/IT IS TOO LONG
001106  1035	        TAD     MODLEN
001107  7620	        SNL CLA
001110  5761' 	        JMP     NXTEBK  /GO GETTUM
001111  4760' 	OVFLO,  JMS     TTOTXT
001112  4504	        TOOBIG-1
001113  4757' 		JMS	CRLF
001114  5200	        JMP     GETINF

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 12



001115  4760' 	BADINF,	JMS	TTOTXT
001116  4471		NOTMOD-1
001117  4757' 		JMS	CRLF
001120  5200		JMP	GETINF
		/
001121  1035	GOTLIB,	TAD	MODLEN
001122  7650		SNA CLA
001123  5326		JMP	LB2BIG		/CAN'T DO A LOOKUP IF G. T. 255
001124  2037		ISZ	INLSW	/SET IN-LIBRARY SWITCH
001125  5777' 		JMP	INLIB
001126  4760' 	LB2BIG,	JMS	TTOTXT
001127  1265		L2BMSG-1
001130  4757' 		JMS	CRLF
001131  5177		JMP	START
001157  3310
001160  3277
001161  1400
001162  0737
001163  0736
001164  3600
001165  0017
001166  6601
001167  7760
001170  7617
001171  3643
001172  3217
001173  3634
001174  2400
001175  1000
001176  7643
001177  1200
	1200		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 13



		/	GET NEXT MODULE FROM LIBRARY
		/
001200  1040	INLIB,	TAD	INFST	/START OF INPUT FILE
001201  3041		DCA	INBLK	/IS WHAT WE WANT
001202  4777' 		JMS	READIN	/BRING CATALOG INTO MODULE BUFFER
001203  1376		TAD	(3
001204  1054		TAD	PMOD
001205  3001		DCA	TMP1
001206  6211		CDF	F1
001207  1401		TAD I	TMP1	/GET CATALOG LEN
001210  7041		CIA
001211  3001		DCA	TMP1	/HOLD COUNTER IN CASE OF FULL CATALOG
001212  1040		TAD	INFST
001213  3041		DCA	INBLK	/WE WANT THE SAME ONE AGAIN
001214  1040		TAD	INFST
001215  3003		DCA	TMP3	/INIT ACCUMULATED MODULE START BLOCK
001216  3035		DCA	MODLEN	/INITAIL MOD LEN IS ZERO
001217  4777' 	INLSC1,	JMS	READIN	/GET CATALOG BLOCK
001220  1375		TAD	(-100
001221  3002		DCA	TMP2	/COUNT ENTRIES IN CAT BLOCK
001222  6211	INLSC2,	CDF	F1
001223  1454		TAD I	PMOD	/LOOK FOR END-OF-CATALOG WORD
001224  7040		CMA
001225  7650		SNA CLA
001226  5261		JMP	NDLSC	/END OF SCAN
001227  1376		TAD	(3
001230  1054		TAD	PMOD	/POINT TO LENGTH
001231  3005		DCA	TMP5
001232  1405		TAD I	TMP5
001233  7650		SNA CLA		/FIRST ENTRY FOR A MODULE?
001234  5242		JMP	NOLEN	/NO, DO NOT UPDATE
001235  1035		TAD	MODLEN
001236  1003		TAD	TMP3	/UPDATE MODULE STARTING BLOCK
001237  3003		DCA	TMP3
001240  1405		TAD I	TMP5	/GET THIS LENGTH
001241  3035		DCA	MODLEN	/FOR THIS MODULE
001242  1036	NOLEN,	TAD	MODBLK	/COMPARE LAST MODULE STARTING BLOCK
001243  7140		CMA CLL
001244  1003		TAD	TMP3	/TO ACCUMULATED START BLOCK
001245  7620		SNL CLA		/INTERESTING?
001246  5252		JMP	NOTYET	/NO
001247  1454		TAD I	PMOD	/YES; WAS NAME DELETED?
001250  7640		SZA CLA
001251  5263		JMP	GLMOD	/NO, WE'VE GOT A GOOD MODULE
001252  1374	NOTYET,	TAD	(4
001253  1054		TAD	PMOD	/POINT TO NEXT NAME
001254  3054		DCA	PMOD
001255  2002		ISZ	TMP2	/END OF CAT BLOCK?
001256  5222		JMP	INLSC2	/NO
001257  2001		ISZ	TMP1	/YES; END OF CATALOG?
001260  5217		JMP	INLSC1	/NO, GET NEW BLOCK
001261  3037	NDLSC,	DCA	INLSW	/YES, NO LONGER IN A LIBRARY
001262  5773' 		JMP	NXTINF	/GET ANOTHER FILE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 14



001263  1003	GLMOD,	TAD	TMP3	/GET STARTING BLOCK
001264  3036		DCA	MODBLK	/OF MODULE
001265  5772' 		JMP	LUKMOD	/AND GO GET THE MODULE
001266  1116	L2BMSG,	TEXT	"INPUT LIBRARY TOO BIG";0
001267  2025
001270  2440
001271  1411
001272  0222
001273  0122
001274  3140
001275  2417
001276  1740
001277  0211
001300  0700
001301  0000
001372  1063
001373  1005
001374  0004
001375  7700
001376  0003
001377  3600
	1400		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 15



		/       PROCESS LOOP FOR ONE MODULE
		/
001400  1377	NXTEBK, TAD     (3
001401  1054	        TAD     PMOD    /ADDR OF FIRST ESD-1
001402  3010	        DCA     X0      /RESET POINTER TO NAMES
001403  1376	        TAD     (-52    /PER BLOCK COUNT
001404  3050	        DCA     ESDCTR
001405  6211	ESDLUP, CDF     F1
001406  1410	        TAD I   X0
001407  3044	        DCA     ENAM1
001410  1410	        TAD I   X0
001411  3045	        DCA     ENAM2
001412  1410	        TAD I   X0
001413  3046	        DCA     ENAM3
001414  1410	        TAD I   X0      /TYPE CODE
001415  6201	        CDF     F0
001416  1375		TAD	(ESDTAB	/DISPATCH FROM TBL
001417  3001		DCA	TMP1
001420  5401		JMP I	TMP1
001421  5774' 	ESDTAB,	JMP	ESDEND	/0=END OF ESD TABLE
001422  5233		JMP	DUPLUK	/1=ENTRY=LOOK FOR
					/DUPLICATE NAME
001423  5773' 		JMP	ESDLND	/2=EXTERN=IGNORE NAME
001424  5773' 		JMP	ESDLND	/3=FORT COMMON=IGNORE
001425  5233		JMP	DUPLUK	/4=PROG SECTION
001426  7402		HLT		/5=MUL ENTRY=DOESN'T
					/EXIST
001427  7402		HLT		/6=MUL SECTION=DITTO
001430  5233		JMP	DUPLUK	/7=SECT8
001431  5773' 		JMP	ESDLND	/10=COMMZ
001432  5233		JMP	DUPLUK	/11=FIELD1

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 16



		/
		/       LOOK FOR DUPLICATION OF THIS ESD SYMBOL
		/
001433  1023	DUPLUK,	TAD	CATLEN
001434  7041		CIA
001435  3001		DCA	TMP1	/COUNT LENGTH OF CAT
001436  1024	        TAD     CATBLK
001437  7041	        CIA
001440  1772' 	        TAD     LIBBLK  /ARE WE AT FIRST BLOCK?
001441  7640	        SZA CLA
001442  4771' 	        JMS     CHGCHK  /CHECK FOR BLOCK MODIFIED
001443  1772' 	        TAD     LIBBLK
001444  3770' 	        DCA     NXTCAT  /SETUP FOR FIRST BLOCK OF CAT
001445  1023		TAD CATLEN
001446  7041		CIA
001447  3060		DCA CATCNT
001450  4767' 	GETCB,	JMS	GCATB	/GET IT
001451  1366		TAD	(CATBUF-1
001452  3011		DCA	X1
001453  1365		TAD	(-100	/COUNT ENTRIES/BLOCK
001454  3002		DCA	TMP2
001455  6211		CDF	F1
001456  1411	CBSRCH,	TAD I	X1	/LOOK AT NAME
001457  7040		CMA
001460  7450		SNA
001461  5764' 		JMP	CHKI	/END OF CATALOG-LOOK FOR /I
001462  7001		IAC		/COMPLETE THE CIA
001463  1044		TAD	ENAM1	/COMPARE
001464  7640		SZA CLA
001465  5300		JMP	NOMTCH
001466  1411		TAD I	X1
001467  7041		CIA
001470  1045		TAD	ENAM2
001471  7640		SZA CLA
001472  5300		JMP	NOMTCH
001473  1411		TAD I	X1	/LAST CHANCE
001474  7041		CIA
001475  1046		TAD	ENAM3
001476  7650		SNA CLA
001477  5317		JMP	GOTMAT	/EQUAL!
001500  1011	NOMTCH,	TAD	X1
001501  0363		AND	(-4
001502  1377		TAD	(3	/BUMP TO NEXT
001503  3011		DCA	X1
001504  2002		ISZ	TMP2
001505  5256		JMP	CBSRCH
001506  4771' 		JMS	CHGCHK	/CHECK FOR MODIFIED BLOCK
001507  2001		ISZ	TMP1	/END OF CATALOG?
001510  5250		JMP	GETCB	/NO, GET NEXT
001511  4762' 		JMS	TTOTXT
001512  4561		CATFUL-1
001513  4761' 		JMS	CRLF
001514  7240		CLA CMA

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 16-1

001515  3043		DCA	FULFLG
001516  5774' 		JMP	ESDEND	/PUT THAT, IF POSSIBLE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 17



001517  6201	GOTMAT,	CDF	F0
001520  4762' 		JMS	TTOTXT
001521  0043		ENAM1-1		/PRINT THE NAME
001522  4762' 		JMS	TTOTXT
001523  4534		NDUP-1		/WHICH TO KEEP?
001524  6211		CDF	F1
001525  1760		TAD I	(SWATOL
001526  6201		CDF	F0
001527  0357		AND	(10	/TEST /I
001530  7650		SNA CLA
001531  5756' 		JMP	CHKR	/NO, LOOK FOR /R
001532  4762' 	GMASK,	JMS	TTOTXT
001533  4547		KEEP-1
001534  4755' 		JMS	WAITOP
001535  5773' 		JMP	ESDLND	/DEFAULT TO THE OLD ONE
001536  1354		TAD	(-"O
001537  7450		SNA
001540  5773' 		JMP	ESDLND	/KEEP OLD
001541  7001		IAC		/IS IT "N"?
001542  7640		SZA CLA
001543  5332		JMP	GMASK	/TRY AGAIN
001544  5753' 		JMP	DELTO	/DELETE THE OLD
001553  1606
001554  7461
001555  3400
001556  1600
001557  0010
001560  7643
001561  3310
001562  3277
001563  7774
001564  1646
001565  7700
001566  1777
001567  2213
001570  2241
001571  2200
001572  0736
001573  2040
001574  2050
001575  1421
001576  7726
001577  0003
	1600		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 18



001600  4777' 	CHKR,   JMS     CRLF
001601  6211	        CDF     F1
001602  1776	        TAD I   (SWMTOX
001603  0375	        AND     (100    /TEST /R
001604  7650	        SNA CLA
001605  5774' 	        JMP     ESDLND  /DEFAULT:KEEP THE OLD ONE
001606  6211	DELTO,  CDF     F1
001607  1011	        TAD     X1
001610  0373	        AND     (-4
001611  7041	        CIA
001612  7040	        CMA             /BACK UP POINTER
001613  3011	        DCA     X1
001614  3411	        DCA I   X1      /CLEAR
001615  3411	        DCA I   X1      /OLD
001616  3411	        DCA I   X1      /NAME
001617  2011	        ISZ     X1      /SKIP OVER LENGTH
001620  3053	        DCA     CHANGD  /BLOCK HAS BEEN MODIFIED
001621  5232	        JMP     NXTE    /ENTER AT END OF LOOP
001622  6211	NDSCN,	CDF	F1
001623  1411	        TAD I   X1      /LOOK AT NEXT
001624  7040	        CMA
001625  7650	        SNA CLA
001626  5267	        JMP     ENDCAT  /NOW WE'RE THERE
001627  1011		TAD	X1
001630  1372		TAD	(3	/BUMP TO NEXT NAME
001631  3011		DCA	X1
001632  2002	NXTE,   ISZ     TMP2
001633  5222	        JMP     NDSCN
001634  4771' 	        JMS     CHGCHK  /LOOK OUT FOR CHANGES
001635  2060		ISZ CATCNT	/END OF CAT ?
001636  7410		SKP
001637  5770' 		JMP FULCAT	/NO MORE PUSSY
001640  4767' 	        JMS     GCATB
001641  1366	        TAD     (CATBUF-1
001642  3011	        DCA     X1
001643  1365	        TAD     (-100
001644  3002	        DCA     TMP2
001645  5222	        JMP     NDSCN

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 19



001646  1764	CHKI,	TAD I	(SWATOL	/LOOK AT /I SW
001647  0363		AND	(10
001650  7650		SNA CLA
001651  5267		JMP	ENDCAT	/NOT SET
001652  4762' 		JMS	TTOTXT
001653  0043		ENAM1-1		/TYPE ESD NAME
001654  4762' 		JMS	TTOTXT
001655  4572		NCLUD-1		/INCLUDE IT?
001656  4761' 	IANS,	JMS	WAITOP
001657  5267		JMP	ENDCAT	/DEFAULT TO INCLUDE
001660  1360		TAD	(-"Y
001661  7450		SNA
001662  5267		JMP	ENDCAT	/YES, INCLUDE
001663  1357		TAD	("Y-"N
001664  7640		SZA CLA		/IS IT "N"?
001665  5256		JMP	IANS	/NO, TRY AGAIN
001666  5774' 		JMP	ESDLND
001667  1011	ENDCAT,	TAD	X1	/POINT TO EMPTY SLOT
001670  0373		AND	(-4
001671  7041		CIA
001672  7040		CMA
001673  3011		DCA	X1
001674  5756' 		JMP	INSERT
001756  2000
001757  0013
001760  7447
001761  3400
001762  3277
001763  0010
001764  7643
001765  7700
001766  1777
001767  2213
001770  0457
001771  2200
001772  0003
001773  7774
001774  2040
001775  0100
001776  7644
001777  3310
	2000		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 20



		/	THIS ESD GOES IN THE CATALOG
		/
002000  6211	INSERT,	CDF	F1
002001  1044		TAD	ENAM1	/MOVE
002002  3411		DCA I	X1	/NAME
002003  1045		TAD	ENAM2	/TO
002004  3411		DCA I	X1	/LIBRARY
002005  1046		TAD	ENAM3	/CATALOG
002006  3411		DCA I	X1
002007  2052		ISZ	INCLUD	/IS THIS THE FIRST?
002010  7410		SKP
002011  1035		TAD	MODLEN	/YES, GET THE LENGTH
002012  3411		DCA I	X1	/AND STORE 4TH WORD
002013  3053		DCA	CHANGD	/SET CAT MODIFIED SW
002014  7201		CLA IAC
002015  1011		TAD	X1	/CHECK FOR END OF BLOCK
002016  0377		AND	(377
002017  7640		SZA CLA
002020  5236		JMP	MARKND	/NO, MARK END OF CAT
002021  4776' 		JMS	CHGCHK	/WRITE THIS BLOCK
002022  6211		CDF	F1
002023  1375		TAD	(-400
002024  3001		DCA	TMP1	/SET COUNT FOR BLOCK LEN
002025  1374		TAD	(CATBUF-1
002026  3011		DCA	X1	/SET POINTER
002027  7240		CLA CMA
002030  3411		DCA I	X1
002031  2001		ISZ	TMP1
002032  5230		JMP	.-2	/CLEAR THE BLOCK
002033  3053		DCA	CHANGD
002034  2024		ISZ	CATBLK
002035  5240		JMP	ESDLND
002036  7240	MARKND,	CLA CMA
002037  3411		DCA I	X1	/MARK NEW END OF CAT
002040  6201	ESDLND,	CDF	F0
002041  7326		CLA STL RTL	/TWO TO SKIP VALUE
002042  1010		TAD	X0
002043  3010		DCA	X0
002044  2050		ISZ	ESDCTR	/DONE WITH BLOCK?
002045  5773' 		JMP	ESDLUP	/NO, GET NEXT
002046  4772' 		JMS	READIN	/GET NEXT BLOK
002047  5771' 		JMP	NXTEBK	/RESET POINTERS AND CONTINUE
002050  2052	ESDEND,	ISZ	INCLUD	/CHECK FOR ANY NAMES OUT
002051  5260		JMP	CPYMOD	/YES, COPY MODULE INTO LIBRARY
002052  4770' 		JMS	TTOTXT	/SORRY, DIDN'T MAKE IT
002053  4406		NONEIN-1
002054  4767' 		JMS	CRLF
002055  2043		ISZ	FULFLG
002056  5766' 		JMP	GETINF	/TRY NEXT
002057  5765' 		JMP	LCLOSE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 21



002060  1036	CPYMOD,	TAD	MODBLK	/GET IN FILE STRT BLOCK
002061  3041		DCA	INBLK
002062  1035		TAD	MODLEN
002063  7041		CIA
002064  3001		DCA	TMP1
002065  1025		TAD	LAVAIL	/FIRST AVAILABLE BLOCK
002066  3275		DCA	NXTOBK
002067  4772' 	CPYLUP,	JMS	READIN	/READ BLOCK OF INPUT
002070  1054		TAD	PMOD
002071  3274		DCA	PNXTOB
002072  4421		JMS I	LIBDVH	/CALL OUTPUT HANDLER
002073  4210		4200!F1
002074  2400	PNXTOB,	MODBUF
002075  0000	NXTOBK,	0		/NEXT OUTPUT BLOCK NUMBER
002076  4061		JMS	IOERR
002077  2275		ISZ	NXTOBK	/BUMP BLOCK NUMBER
002100  2001		ISZ	TMP1	/CHECK LENGH
002101  5267		JMP	CPYLUP
002102  1275		TAD	NXTOBK
002103  3025		DCA	LAVAIL	/UPDATE AVAILABLE POINTER
002104  5766' 		JMP	GETINF	/GO FOR NEXT
002165  2400
002166  1000
002167  3310
002170  3277
002171  1400
002172  3600
002173  1405
002174  1777
002175  7400
002176  2200
002177  0377
	2200		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 22



002200  0000	CHGCHK,	0
002201  6201		CDF	F0	/PRECAUTION
002202  1053		TAD	CHANGD	/HAS BLOCK BEEN MODIFIED?
002203  7640		SZA CLA
002204  5600		JMP I	CHGCHK	/NO, NOTHING TO DO
002205  1024		TAD	CATBLK
002206  3777' 		DCA	ZCATB	/WRITE THE BLOCK
002207  1376		TAD	(4200!F1
002210  3775' 		DCA	ZCATC
002211  4774' 		JMS	ZCAT
002212  5600		JMP I	CHGCHK	/OK
		/
		/
002213  0000	GCATB,	0
002214  6201		CDF	F0
002215  1241		TAD	NXTCAT
002216  7041		CIA
002217  1024		TAD	CATBLK	/IS IT IN CORE?
002220  7650		SNA CLA
002221  5237		JMP	SOEZ	/YES, ITS EZ
002222  1241		TAD	NXTCAT
002223  7041		CIA
002224  1773' 		TAD	LIBBLK
002225  1023		TAD	CATLEN
002226  7750		SPA SNA CLA	/CHECK FOR INTERNAL ERROR
002227  5772' 		JMP	FULCAT	/**
002230  1241		TAD	NXTCAT
002231  3777' 		DCA	ZCATB
002232  1371		TAD	(200!F1	/SET FOR READ
002233  3775' 		DCA	ZCATC
002234  4774' 		JMS	ZCAT
002235  1241		TAD	NXTCAT	/NEXT BLOCK
002236  3024		DCA	CATBLK	/IS IN CORE
002237  2241	SOEZ,	ISZ	NXTCAT
002240  5613		JMP I	GCATB
002241  0000	NXTCAT,	0
002371  0210
002372  0457
002373  0736
002374  0703
002375  0707
002376  4210
002377  0711
	2400		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 23



002400  4777' 	LCLOSE,	JMS	CHGCHK
002401  1776' 		TAD	USRCOD
002402  1375		TAD	(-ENTER	/DID WE ENTER A NEW FILE?
002403  7640		SZA CLA
002404  5774' 		JMP	CATLST	/NO, GO LIST CATALOG
002405  1773' 		TAD	LIBBLK	/GET LEN
002406  7041		CIA
002407  6211		CDF	F1
002410  1772		TAD I	(EQLO	/GET USER EXTENSION REQUEST
002411  6201		CDF	F0
002412  1025		TAD	LAVAIL	/PLUS CURRENT END
002413  3001		DCA	TMP1
002414  1001		TAD	TMP1
002415  7100		CLL
002416  1771' 		TAD	LIBLEN	/CHECK FOR POSSIBLE
002417  7620		SNL CLA
002420  5224		JMP	.+4
002421  1771' 		TAD	LIBLEN	/CAN'T GIVE ALL HE WANTS
002422  7041		CIA
002423  7410		SKP
002424  1001		TAD	TMP1
002425  3252		DCA	LCLEN	/SET CLOSE LENGTH
002426  1023		TAD	CATLEN
002427  7040		CMA
002430  1252		TAD	LCLEN	/COMPARE CAT LEN TO LIB LEN
002431  7750		SPA SNA CLA
002432  5255		JMP	NOLIB	/THERE'S NO POINT
002433  1773' 		TAD	LIBBLK	/GET FIRST BLOCK
002434  3770' 		DCA	NXTCAT
002435  4767' 		JMS	GCATB
002436  6211		CDF	F1
002437  1252		TAD	LCLEN	/ACTUAL LIBRARY LENGTH
002440  3766		DCA I	(CATBUF+2
002441  6201		CDF	F0
002442  3053		DCA	CHANGD
002443  4777' 		JMS	CHGCHK	/WRITE IT
002444  1022		TAD	LIBU
002445  0365		AND	(17
002446  6212		CIF	F1
002447  4420		JMS I	USR
002450  0004		CLOSE
002451  0026		LIBNAM
002452  0000	LCLEN,	0
002453  4061		JMS	IOERR
002454  5774' 		JMP	CATLST	/GO LIST THE CATALOG
		/
002455  4764' 	NOLIB,	JMS	TTOTXT
002456  4600		WHYCLS-1
002457  4763' 		JMS	CRLF
002460  5177		JMP	START
002563  3310
002564  3277
002565  0017

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 23-1

002566  2002
002567  2213
002570  2241
002571  0737
002572  7646
002573  0736
002574  2600
002575  7775
002576  0735
002577  2200
	2600		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 24



		/	LIST THE CATALOG
		/
002600  4777' 	CATLST,	JMS	OOPEN	/OPEN LISTING FILE
002601  5177		JMP	START	/NONE DESIRED
002602  1376		TAD	(OCHAR	/SETUP FOR DEVICE-INDEPENDENT
002603  3056		DCA	PCHR	/OUTPUT
002604  1375		TAD	(214	/AT TOP OF PAGE
002605  4456		JMS I	PCHR
002606  4774' 		JMS	CRLF
002607  4773' 		JMS 	TTOTXT
002610  4377		LBV-1
002611  4773' 		JMS	TTOTXT
002612  4632		CATOF-1
002613  4772' 		JMS	PRLBNM	/PRINT THE NAME
002614  6211		CDF	F1
002615  1771		TAD I	(SYSDAT
002616  6201		CDF	F0
002617  7450		SNA
002620  5264		JMP	NODATE	/DON'T KNOW THE DATE
002621  3001		DCA	TMP1
002622  4773' 		JMS	TTOTXT
002623  4641		ON-1
002624  7200		CLA			/THE FOLLOWING CODE GETS THE DAY
002625  3002		DCA	TMP2
002626  1001		TAD	TMP1		/GET THE DATE
002627  7012		RTR			/ROTATE THREE RIGHT AND MASK
002630  7010		RAR			/TO GET THE DAY IN OCTAL
002631  0370		AND	(37
002632  4266		JMS	MAK8BT		/MAKE IT 8-BIT AND PRINT
002633  3002		DCA	TMP2
002634  1001		TAD	TMP1		/GET THE DATE BACK
002635  0367		AND	(7400		/MASK TO GET THE MONTH BITS
002636  4766' 		JMS	R6R		/MONTH*4 (IN OCTAL)
002637  3002		DCA	TMP2		/PUT IN TEMP. VARIABLE TO SAVE IT
002640  1002		TAD	TMP2		/GET IT BACK

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 25



002641  7012		RTR			/MONTH
002642  1002		TAD	TMP2
002643  1365		TAD	(MONTHS-6
002644  3246		DCA	.+2		/ADDRESS OF MONTH FROM TABLE
002645  4773' 		JMS	TTOTXT		/PUT IT IN THE TEXT LINE
002646  0000		0
002647  1001		TAD	TMP1		/GET THE DATE---TO FIND THE YEAR
002650  0364		AND	(7		/MASK TO GET THE YEAR OFFSET BITS
002651  3004		DCA	TMP4		/SAVE THEM
002652  3002		DCA	TMP2
002653  1763		TAD I	(7777		/GET THE DATE EXTENSION BITS
002654  0362		AND	(1600		/WAS 600
002655  7112		CLL RTR			/ROTATE TO GET THEM INTO BIT
002656  7012		RTR			/POSITIONS 7 AND 8
002657  1004		TAD	TMP4		/ADD IN THE YEAR OFFSET BITS
002660  1361		TAD	(-36		/70-100
002661  7510		SPA
002662  1360		TAD	(144		/100 - ADD 70(ORIGINAL BASE YEAR)
002663  4266		JMS	MAK8BT		/MAKE 8-BIT AND PRINT
002664  4774' 	NODATE,	JMS	CRLF
002665  5757' 		JMP	PRCAT		/TITLE IS DONE, PRINT CAT

002666  0000	MAK8BT, 0			/ROUTINE TO CONVERT TO 8-BIT AND PRINT
002667  7100		CLL			/FIRST CONVERT TO DECIMAL
002670  1356	CONVYR, TAD	(-12		/KEEP SUBTRACTING 12
002671  7510		SPA			/HAVE THE YEAR
002672  5275		JMP	GETDG1
002673  2002		ISZ	TMP2		/HOLDS THE FIRST DIGIT OF YEAR
002674  5270		JMP	CONVYR
002675  1355	GETDG1, TAD	(12		/GET THE SECOND DIGIT
002676  3003		DCA	TMP3		/SAVE IT
002677  1002		TAD	TMP2		/GET THE FIRST DIGIT
002700  7450		SNA			/FIRST DIGIT IS A ZERO
002701  5304		JMP	PRDIG2		/PRINT THE SECOND DIGIT
002702  1354		TAD	(260		/MAKE FIRST DIGIT OF YEAR 8-BIT
002703  4456		JMS I	PCHR		/PRINT IT
002704  1003	PRDIG2, TAD	TMP3		/GET THE SECOND DIGIT
002705  1354		TAD	(260		/MAKE SECOND DIGIT OF YEAR 8-BIT
002706  4456		JMS I	PCHR		/PRINT IT
002707  5666		JMP I	MAK8BT		/RETURN
002754  0260
002755  0012
002756  7766
002757  3000
002760  0144
002761  7742
002762  1600
002763  7777
002764  0007
002765  4644
002766  3265
002767  7400
002770  0037

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 25-1

002771  7666
002772  3664
002773  3277
002774  3310
002775  0214
002776  4011
002777  4200
	3000		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 26



		/	LIST ALL ENTRIES IN THE CATALOG
		/
003000  1023	PRCAT,	TAD	CATLEN
003001  7041		CIA
003002  3001		DCA	TMP1
003003  1777' 		TAD	LIBBLK
003004  3776' 		DCA	NXTCAT
003005  7240		CLA CMA
003006  3003		DCA	TMP3	/SET LINE COUNTER
003007  4775' 	CATLUP,	JMS	GCATB
003010  1374		TAD	(CATBUF-1
003011  3010		DCA	X0
003012  1373		TAD	(-100
003013  3002		DCA	TMP2
003014  6211	CATLP2,	CDF	F1
003015  1410		TAD I	X0	/GET FIRST WORD OF NAME
003016  7450		SNA
003017  5245		JMP	EMPTY	/NOT AN ESD NAME
003020  7040		CMA
003021  7450		SNA
003022  5260		JMP	NDCATL	/END OF CATALOG
003023  7040		CMA		/RESTORE FIRST WORD
003024  4772' 		JMS	TTO2	/PRINT
003025  5236		JMP	NDNAM	/A SHORT NAME
003026  6211		CDF	F1
003027  1410		TAD I	X0
003030  4772' 		JMS	TTO2
003031  5236		JMP	NDNAM
003032  6211		CDF	F1
003033  1410		TAD I	X0
003034  4772' 		JMS	TTO2
003035  7000		NOP
003036  2003	NDNAM,	ISZ	TMP3	/MORE ROOM ON THIS LINE?
003037  5244		JMP	SAMLIN	/SURE
003040  4771' 		JMS	CRLF
003041  1370		TAD	(-10	/SETUP FOR 8 PER LINE
003042  3003		DCA	TMP3
003043  5245		JMP	EMPTY
003044  4767' 	SAMLIN,	JMS	TAB	/SPACE OVER TO NEXT NAME
003045  1010	EMPTY,	TAD	X0
003046  0366		AND	(-4
003047  1365		TAD	(3
003050  3010		DCA	X0	/POINT TO NEXT
003051  2002		ISZ	TMP2
003052  5214		JMP	CATLP2	/GO FOR NEXT
003053  2001		ISZ	TMP1	/MORE BLOCKS?
003054  5207		JMP	CATLUP	/YES
003055  4771' 		JMS	CRLF
003056  4764' 		JMS	TTOTXT
003057  4561		CATFUL-1
003060  4771' 	NDCATL,	JMS	CRLF
003061  1363		TAD	(214	/EJECT PAGE
003062  4456		JMS I	PCHR

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 26-1

003063  4762' 		JMS	OCLOSE	/CLOSE THE FILE
003064  5177		JMP	START
003162  4265
003163  0214
003164  3277
003165  0003
003166  7774
003167  3317
003170  7770
003171  3310
003172  3241
003173  7700
003174  1777
003175  2213
003176  2241
003177  0736
	3200		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 27



		/	USEFUL OUTPUT THINGS
		/
003200  0000	TTO,	0
003201  3216		DCA	TTOCHR
003202  4217		JMS	TTWAIT
003203  1377		TAD	(200
003204  6034		KRS
003205  1376		TAD	(-217	/CRTL/O CHECK
003206  7650		SNA CLA
003207  6031		KSF
003210  7410		SKP
003211  5600		JMP I	TTO
003212  1216		TAD	TTOCHR
003213  6046		TLS
003214  3055		DCA	TTFLAG
003215  5600		JMP I	TTO
003216  0000	TTOCHR,	0
003217  0000	TTWAIT,	0
003220  1055		TAD	TTFLAG
003221  7650		SNA CLA
003222  5617		JMP I	TTWAIT
003223  4230		JMS	CCHK	/BEWARE OF CTRL/C
003224  6041		TSF
003225  5223		JMP	.-2	/WAIT TILL DONE
003226  3055		DCA	TTFLAG	/CLEAR BUSY FLAG
003227  5617		JMP I	TTWAIT
003230  0000	CCHK,	0
003231  6031		KSF
003232  5630		JMP I	CCHK	/NOTHING TO WORRY ABOUT
003233  1377		TAD	(200
003234  6034		KRS
003235  1375		TAD	(-203
003236  7650		SNA CLA		/WAS IT CONTROL C?
003237  5774		JMP I	(7600	/YES
003240  5630		JMP I	CCHK
003241  0000	TTO2,	0
003242  3007		DCA	TMP7
003243  1007		TAD	TMP7
003244  4265		JMS	R6R
003245  4252		JMS	TTO2A
003246  1007		TAD	TMP7
003247  4252		JMS	TTO2A
003250  2241		ISZ	TTO2
003251  5641		JMP I	TTO2
003252  0000	TTO2A,	0
003253  0373		AND	(77
003254  7450		SNA
003255  5641		JMP I	TTO2
003256  1372		TAD	(-40
003257  7510		SPA
003260  1371		TAD	(100
003261  1370		TAD	(240
003262  4456		JMS I	PCHR

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 27-1

003263  2057		ISZ	TTPOS	/BUMP POSITION COUNT
003264  5652		JMP I	TTO2A

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 28



003265  0000	R6R,	0
003266  7112		CLL RTR
003267  7012		RTR
003270  7012		RTR
003271  5665		JMP I	R6R
003272  0000	R6L,	0
003273  7106		CLL RTL
003274  7006		RTL
003275  7006		RTL
003276  5672		JMP I	R6L
003277  0000	TTOTXT,	0
003300  6201		CDF	F0
003301  1677		TAD I	TTOTXT
003302  3017		DCA	X7
003303  2277		ISZ	TTOTXT	/BUMP PAST POINTER
003304  1417		TAD I	X7
003305  4241		JMS	TTO2
003306  5677		JMP I	TTOTXT
003307  5304		JMP	.-3
003310  0000	CRLF,	0
003311  3057		DCA	TTPOS	/RESET POSITION
003312  1367		TAD	(215
003313  4456		JMS I	PCHR
003314  1366		TAD	(212
003315  4456		JMS I	PCHR
003316  5710		JMP I	CRLF
003317  0000	TAB,	0		/PSEUDO-TAB GENERATOR
003320  1370		TAD	(240
003321  4456		JMS I	PCHR
003322  2057		ISZ	TTPOS
003323  1057		TAD	TTPOS
003324  0365		AND	(7
003325  7650		SNA CLA		/IS POSITION A MULTIPLE OF 8
003326  5717		JMP I	TAB
003327  5320		JMP	TAB+1	/NO, TRY MORE
003365  0007
003366  0212
003367  0215
003370  0240
003371  0100
003372  7740
003373  0077
003374  7600
003375  7575
003376  7561
003377  0200
	3400		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 29



003400  0000	WAITOP,	0
003401  1377		TAD	(277	/QUESTION
003402  4776' 		JMS	TTO
003403  3236		DCA	RETCHR
003404  4237	WREP,	JMS	TTI	/WAIT FOR REPLY
003405  1375		TAD	(-215
003406  7450		SNA
003407  5233		JMP	DFALT
003410  1374		TAD	(215-240	/PRINTING?
003411  7510		SPA
003412  5204		JMP	WREP	/NO, TRY AGIAN
003413  1373		TAD	(240
003414  3236		DCA	RETCHR
003415  1236		TAD	RETCHR
003416  4776' 	ECHO,	JMS	TTO
003417  4237		JMS	TTI
003420  1375		TAD	(-215
003421  7450		SNA
003422  5232		JMP	GOTREP
003423  1372		TAD	(215-377	/LOOKOUT FOR RUBOUT!
003424  7450		SNA
003425  5230		JMP	RUBOUT
003426  1371		TAD	(377
003427  5216		JMP	ECHO
003430  4770' 	RUBOUT,	JMS	CRLF
003431  5201		JMP	WAITOP+1
003432  2200	GOTREP,	ISZ	WAITOP	/GOT A REAL ANSWER
003433  4770' 	DFALT,	JMS	CRLF
003434  1236		TAD	RETCHR
003435  5600		JMP I	WAITOP
003436  0000	RETCHR,	0
		/
003437  0000	TTI,	0
003440  6031		KSF		/WAIT FOR A KEY
003441  5240		JMP	.-1
003442  6036		KRB
003443  0367		AND	(177	/TAKE CARE OF PARITY
003444  1366		TAD	(-3	/CTRL C?
003445  7450		SNA
003446  5765		JMP I	(7600	/YES
003447  1364		TAD	(203	/GET ORGINIAL CHAR BACK
003450  5637		JMP I	TTI
003564  0203
003565  7600
003566  7775
003567  0177
003570  3310
003571  0377
003572  7616
003573  0240
003574  7755
003575  7563
003576  3200

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 29-1

003577  0277
	3600	PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 30



		/
		/	INPUT BUFFERRER AND STUFF
		/
003600  0000	READIN,	0
003601  6201		CDF	F0
003602  1041		TAD	INBLK
003603  1042		TAD	THSBLK	/-FIRST BLOCK FOLLOWING BUFFER CONTENTS
003604  7100		CLL
003605  1377		TAD	(MBUFS
003606  7420		SNL		/IS IT IN CORE?
003607  5217		JMP	MUSTRD	/NO, WE HAVE TO DO A READ
003610  7112		CLL RTR
003611  7012		RTR
003612  7010		RAR		/TIMES 400
003613  1376	SETP,	TAD	(MODBUF	/PLUSS BUFFER ADDR
003614  3054		DCA	PMOD	/POINTS TO BLOCK
003615  2041		ISZ	INBLK	/READY FOR NEXT
003616  5600		JMP I	READIN
003617  7200	MUSTRD,	CLA		/THIS ONE'S HARDER
003620  1041		TAD	INBLK
003621  3231		DCA	RDBLK
003622  1041		TAD	INBLK
003623  1377		TAD	(MBUFS
003624  7041		CIA
003625  3042		DCA	THSBLK
003626  4434		JMS I	MODDVH
003627  2410		MBUFS^200!F1
003630  2400		MODBUF
003631  0000	RDBLK,	0
003632  4061		JMS	IOERR
003633  5213		JMP	SETP	/OK

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 31



		/	ROUTINES TO SAVE AND RESTORE
		/	DEVICE HANDLER RESIDENCY TABLE
		/
003634  0000	SAVRES,	0
003635  1375		TAD	(DHRES-1
003636  3010		DCA	X0
003637  1374		TAD	(SVRES-1
003640  3011		DCA	X1
003641  4252		JMS	MOVRES
003642  5634		JMP I	SAVRES
003643  0000	RSTRES,	0
003644  1374		TAD	(SVRES-1
003645  3010		DCA	X0
003646  1375		TAD	(DHRES-1
003647  3011		DCA	X1
003650  4252		JMS	MOVRES
003651  5643		JMP I	RSTRES
003652  0000	MOVRES,	0
003653  1373		TAD	(-17
003654  3001		DCA	TMP1
003655  6211		CDF	F1
003656  1410		TAD I	X0
003657  3411		DCA I	X1
003660  2001		ISZ	TMP1
003661  5256		JMP	.-3
003662  6201		CDF	F0
003663  5652		JMP I	MOVRES
	7400	SVRES=7400

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 32



		/	PRINT THE LIBRARY NAME
		/
003664  0000	PRLBNM,	0
003665  1026		TAD	LIBNAM
003666  4772' 		JMS	TTO2	/FIRST 2 CHARS
003667  5276		JMP	PREXT
003670  1027		TAD	LIBNAM+1
003671  4772' 		JMS	TTO2
003672  5276		JMP	PREXT
003673  1030		TAD	LIBNAM+2
003674  4772' 		JMS	TTO2
003675  7000		NOP
003676  1371	PREXT,	TAD	(".
003677  4456		JMS I	PCHR
003700  1031		TAD	LIBNAM+3
003701  4772' 		JMS	TTO2
003702  5664		JMP I	PRLBNM
003703  5664		JMP I	PRLBNM
003771  0256
003772  3241
003773  7761
003774  7377
003775  7646
003776  2400
003777  0012
	4000		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 33



		/	OUTPUT HANDLERS STOLEN FROM PIP
	0010	OUFLD=F1
	6410	OUCTL=MBUFS^200!4000!F1
	2400	OUBUF=MODBUF
		/
		/	INITIALIZE FOR OUTPUT
		/
004000  0000	OUSETP,	0
004001  1377		TAD	(OUCTL&3700	/BUFFER SIZE IN DBL WORDS
004002  7041		CIA		/NEGATE IT (PAL10 BLOWS)
004003  3262		DCA	OUDWCT
004004  1377		TAD	(OUBUF
004005  3260		DCA	OUPTR	/INITIALIZE WORD POINTER
004006  1261		TAD	OUJMPE
004007  3216		DCA	OUJMP	/INITIALIZE 3-WAY CHARACTER SWITCH
004010  5600		JMP I	OUSETP
		/
		/	STORE CHARACTERS IN OUTPUT BUFFER
		/	IN PS8 FORMAT (YOU KNOW, 3 CHARS
		/	IN 2 WORDS THE WRONG WAY)
		/
004011  0000	OCHAR,	0
004012  0376		AND	(377
004013  3256		DCA	OUTEMP
004014  6211		CDF	OUFLD	/SET DATA FIELD TO BUFFER'S FIELD
004015  2216		ISZ	OUJMP	/BUMP THE CHARACTER SWITCH
004016  7402	OUJMP,	HLT		/THREE WAY CHARACTER SWITCH
004017  5252		JMP	OCHAR1
004020  5247		JMP	OCHAR2
004021  1256		TAD	OUTEMP
004022  7106		CLL RTL
004023  7006		RTL
004024  0375		AND	(7400
004025  1657		TAD I	OUPOLD
004026  3657		DCA I	OUPOLD	/UPDATE FIRST WORD OF TWO WITH HIGH
					/ORDER 4 BITS OF THIRD CHAR
004027  1256		TAD	OUTEMP
004030  7112		CLL RTR
004031  7012		RTR
004032  7010		RAR
004033  0375		AND	(7400
004034  1660		TAD I	OUPTR
004035  3660		DCA I	OUPTR	/UPDATE 2ND WORD FROM LO 4 BITS
004036  1261		TAD	OUJMPE
004037  3216		DCA	OUJMP	/RESET SWITCH
004040  2260		ISZ	OUPTR
004041  2262		ISZ	OUDWCT	/BUMP COUNTER EVERY 3 CHARS
004042  5254		JMP	OUCOMN
004043  1374		TAD	(OUCTL	/LOAD CONTROL WORD FOR A FULL WRITE
004044  4773		JMS I	(OUTDMP	/DUMP THE BUFFER
004045  4200		JMS	OUSETP	/RE-INITIALIZE THE POINTERS
004046  5254		JMP	OUCOMN
004047  1260	OCHAR2,	TAD	OUPTR

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 33-1

004050  3257		DCA	OUPOLD	/SAVE POINTER TO FIRST WORD OF TWO
004051  2260		ISZ	OUPTR	/BUMP WORD POINTER TO SECOND WORD
004052  1256	OCHAR1,	TAD	OUTEMP
004053  3660		DCA I	OUPTR
004054  6201	OUCOMN,	CDF	F0
004055  5611		JMP I	OCHAR
004056  0000	OUTEMP,	0
004057  0000	OUPOLD,	0
004060  0000	OUPTR,	0
004061  5216	OUJMPE,	JMP	OUJMP
004062  0000	OUDWCT,	0
		/
		/	MOVE OUTPUT FILE NAME TO FIELD 0
		/
004063  0000	OFNAME,	0
004064  1372		TAD	(OUTF2
004065  3010		DCA	X0	/NAME OF CAT LIST FILE
004066  6211		CDF	F1
004067  1410		TAD I	X0
004070  3303		DCA	OUFNAM	/FIRST 2 CHARS
004071  1410		TAD I	X0
004072  3304		DCA	OUFNAM+1
004073  1410		TAD I	X0
004074  3305		DCA	OUFNAM+2
004075  1410		TAD I	X0
004076  7450		SNA
004077  1307		TAD	TXTCA	/DEFAULT CAT EXT
004100  3306		DCA	OUFNAM+3
004101  6201		CDF	F0	/RESTORE FIELD
004102  5663		JMP I	OFNAME
004103  0000	OUFNAM,	ZBLOCK	4
004107  0301	TXTCA,	301
004172  7605
004173  4235
004174  6410
004175  7400
004176  0377
004177  2400
	4200		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 34



004200  0000	OOPEN,	0
004201  6211		CDF	F1
004202  1777		TAD I	(OUTF2	/GET DEVICE CODE, LEN
004203  3227		DCA	OUELEN	/HOLD IT A MO
004204  4776		JMS I	(OFNAME	/GET FILE NAME INTO FIELD 0
004205  1227		TAD	OUELEN	/CHECK FOR NULL FILE
004206  7650		SNA CLA
004207  5600		JMP I	OOPEN	/NOTHING TO OPEN
004210  1310		TAD	OUNAME	/RESET ENTER CALL
004211  3226		DCA	OUBLK
004212  1375		TAD	(IDEVH!1
004213  3220		DCA	OUHNDL
004214  1227		TAD	OUELEN	/THE UNIT
004215  6212		CIF	F1
004216  4420		JMS I	USR
004217  0001		FETCH		/ASSIGN, FETCH HANDLER
004220  0000	OUHNDL,	0		/OUTPUT DEVICE HANDLER ENTRY
004221  4061		JMS	IOERR		/HUH?
004222  1227		TAD	OUELEN	/UNIT AGAIN
004223  6212		CIF	F1
004224  4420		JMS I	USR
004225  0003		ENTER		/ENTER OUTPUT FILE
004226  4103	OUBLK,	OUFNAM		/REPLACED WITH STARTING BLOCK
004227  0000	OUELEN,	0		/REPLACED WITH LENGTH OF HOLE
004230  4061		JMS	IOERR	/YOU BLEW IT!!!
004231  3311		DCA	OUCCNT
004232  4774		JMS I	(OUSETP
004233  2200		ISZ	OOPEN
004234  5600		JMP I	OOPEN

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 35



004235  0000	OUTDMP,	0
004236  3260		DCA	OUCTLW	/STORE THE CONTROL WORD
004237  1311		TAD	OUCCNT
004240  7450		SNA
004241  2260		ISZ	OUCTLW
004242  1226		TAD	OUBLK
004243  3262		DCA	OUREC	/COMPUTE STARTING BLOCK
004244  1260		TAD	OUCTLW
004245  4773' 		JMS	R6L
004246  0372		AND	(17	/COMPUTE THE NUMBER OF RECORDS
004247  1311		TAD	OUCCNT	/UPDATE SIZE OF FILE
004250  3311		DCA	OUCCNT
004251  1311		TAD	OUCCNT
004252  7120		CLL CML
004253  1227		TAD	OUELEN
004254  7660		SNL SZA CLA	/EXCEED GIVEN LENGTH ?
004255  4061		JMS	IOERR	/YES - ERROR
004256  6201		CDF	F0
004257  4620		JMS I	OUHNDL
004260  0000	OUCTLW,	0
004261  2400		OUBUF
004262  0000	OUREC,	0
004263  4061		JMS	IOERR
004264  5635		JMP I	OUTDMP

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 36



004265  0000	OCLOSE,	0
004266  1371		TAD	(232	/OUTPUT A CTRL/Z
004267  4456		JMS I	PCHR
004270  4456	FILLLP,	JMS I	PCHR
004271  1370		TAD	(77
004272  0767		AND I	(OUDWCT
004273  7640		SZA CLA		/UP TO THE BOUNDARY YET?
004274  5270		JMP	FILLLP	/NO - FILL WITH ZEROS
004275  1767		TAD I	(OUDWCT	/GET DOUBLEWORD COUNT LEFT
004276  1366		TAD	(OUCTL&3700
004277  7450		SNA		/A FULL WRITE LEFT?
004300  5303		JMP	NODUMP	/YES DON'T DO IT
004301  1365		TAD	(4000!OUFLD /PUT IN FIELD AND WRITE BITS
004302  4235		JMS	OUTDMP
004303  6213	NODUMP,	CIF CDF	F1
004304  1777		TAD I	(OUTF2
004305  6201		CDF	F0
004306  4420		JMS I	USR
004307  0004		CLOSE		/CLOSE THE OUTPUT FILE
004310  4103	OUNAME,	OUFNAM		/POINTER TO OUTPUT FILE NAME
004311  0000	OUCCNT,	0
004312  4061		JMS	IOERR	/ERROR WHILE CLOSING - BAD!!
004313  5665		JMP I	OCLOSE	/ALL DONE
004365  4010
004366  2400
004367  4062
004370  0077
004371  0232
004372  0017
004373  3272
004374  4000
004375  6601
004376  4063
004377  7605
	4400		PAGE

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 37



		/	MESSAGES
		/
004400  1411	LBV,	TEXT	"LIBRA V "
004401  0222
004402  0140
004403  2640
004404  0000
	4404	*.-1
004404  6560	VMESG,	VERS&70^7+VERS+6060
004405  0240		PATCH&77^100+40
004406  4000		4000
004407  1517	NONEIN,	TEXT	"MODULE NOT INCLUDED";0
004410  0425
004411  1405
004412  4016
004413  1724
004414  4011
004415  1603
004416  1425
004417  0405
004420  0400
004421  0000
004422  1411	FLSTR,	TEXT	"LIBRARY MUST BE ON A FILE-STRUCTURED DEVICE";0
004423  0222
004424  0122
004425  3140
004426  1525
004427  2324
004430  4002
004431  0540
004432  1716
004433  4001
004434  4006
004435  1114
004436  0555
004437  2324
004440  2225
004441  0324
004442  2522
004443  0504
004444  4004
004445  0526
004446  1103
004447  0500
004450  0000
004451  1116	SMALL,	TEXT	"INSUFFICIENT SPACE FOR LIBRARY";0
004452  2325
004453  0606
004454  1103
004455  1105
004456  1624
004457  4023
004460  2001

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 37-1

004461  0305
004462  4006
004463  1722
004464  4014
004465  1102
004466  2201
004467  2231
004470  0000
004471  0000
004472  1116	NOTMOD,	TEXT	"INPUT NOT A MODULE";0
004473  2025
004474  2440
004475  1617
004476  2440
004477  0140
004500  1517
004501  0425
004502  1405
004503  0000
004504  0000
004505  1116	TOOBIG,	TEXT	"INPUT TOO BIG FOR LIBRARY";0
004506  2025
004507  2440
004510  2417
004511  1740
004512  0211
004513  0740
004514  0617
004515  2240
004516  1411
004517  0222
004520  0122
004521  3100
004522  0000
004523  4011	UNLIB,	TEXT	" IS NOT A LIBRARY";0
004524  2340
004525  1617
004526  2440
004527  0140
004530  1411
004531  0222
004532  0122
004533  3100
004534  0000
004535  4011	NDUP,	TEXT	" IS DUPLICATE NAME";0
004536  2340
004537  0425
004540  2014
004541  1103
004542  0124
004543  0540
004544  1601
004545  1505
004546  0000
004547  0000

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 37-2

004550  7340	KEEP,	TEXT	"; KEEP OLD OR NEW";0
004551  1305
004552  0520
004553  4017
004554  1404
004555  4017
004556  2240
004557  1605
004560  2700
004561  0000
004562  0301	CATFUL,	TEXT	"CATALOG IS FULL";0
004563  2401
004564  1417
004565  0740
004566  1123
004567  4006
004570  2514
004571  1400
004572  0000
004573  7240	NCLUD,	TEXT	": INCLUDE";0
004574  1116
004575  0314
004576  2504
004577  0500
004600  0000
004601  1411	WHYCLS,	TEXT	"LIBRARY TOO SMALL FOR USE; START OVER";0
004602  0222
004603  0122
004604  3140
004605  2417
004606  1740
004607  2315
004610  0114
004611  1440
004612  0617
004613  2240
004614  2523
004615  0573
004616  4023
004617  2401
004620  2224
004621  4017
004622  2605
004623  2200
004624  0000
004625  1157	IOMSG,	TEXT	"I/O ERROR";0
004626  1740
004627  0522
004630  2217
004631  2200
004632  0000
004633  0301	CATOF,	TEXT	"CATALOG OF ";0
004634  2401
004635  1417
004636  0740

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 37-3

004637  1706
004640  4000
004641  0000
004642  4017	ON,	TEXT	" ON ";0
004643  1640
004644  0000
004645  0000
004646  5440	CS197,	TEXT	", 197";0
004647  6171
004650  6700
004651  0000
004652  5512	MONTHS, TEXT    "-JAN-@@@@@-FEB-@@@@@-MAR-@@@@"
004653  0116
004654  5500
004655  0000
004656  0000
004657  5506
004660  0502
004661  5500
004662  0000
004663  0000
004664  5515
004665  0122
004666  5500
004667  0000
004670  0000
004671  5501		TEXT	"-APR-@@@@@-MAY-@@@@@-JUN-@@@@"
004672  2022
004673  5500
004674  0000
004675  0000
004676  5515
004677  0131
004700  5500
004701  0000
004702  0000
004703  5512
004704  2516
004705  5500
004706  0000
004707  0000
004710  5512		TEXT	"-JUL-@@@@@-AUG-@@@@@-SEP-@@@@"
004711  2514
004712  5500
004713  0000
004714  0000
004715  5501
004716  2507
004717  5500
004720  0000
004721  0000
004722  5523
004723  0520
004724  5500
004725  0000

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 37-4

004726  0000
004727  5517		TEXT	"-OCT-@@@@@-NOV-@@@@@-DEC-@@@@"
004730  0324
004731  5500
004732  0000
004733  0000
004734  5516
004735  1726
004736  5500
004737  0000
004740  0000
004741  5504
004742  0503
004743  5500
004744  0000
004745  0000

	0000		FIELD 0
	0200		*200
			$

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 38

BADINF 1115      F0     0000      NDCATL 3060      PATCH  0302
CATBLK 0024      F1     0010      NDLSC  1261      PCAT   0051
CATBUF 2000      GCATB  2213      NDNAM  3036      PCHR   0056
CATB0  0660      GETCB  1450      NDSCN  1622      PMOD   0054
CATCNT 0060      GETDG1 2675      NDUP   4535      PNXTOB 2074
CATFUL 4562      GETINF 1000      NEWLIB 0600      PRCAT  3000
CATLEN 0023      GLMOD  1263      NODATE 2664      PRDIG2 2704
CATLP2 3014      GMASK  1532      NODUMP 4303      PREXT  3676
CATLST 2600      GOTLIB 1121      NOLEN  1242      PRLBNM 3664
CATLUP 3007      GOTMAT 1517      NOLIB  2455      RDBLK  3631
CATOF  4633      GOTREP 3432      NOMTCH 1500      READIN 3600
CBSRCH 1456      IANS   1656      NONEIN 4407      RETCHR 3436
CBUFS  0001      IDEVH  6600      NOTFS  0257      RSTRES 3643
CCHK   3230      INBLK  0041      NOTLIB 0504      RUBOUT 3430
CHAIN  0006      INCLUD 0052      NOTMOD 4472      R6L    3272
CHANGD 0053      INDVH  1056      NOTYET 1252      R6R    3265
CHGCHK 2200      INF    7617      NXTCAT 2241      SAMLIN 3044
CHKI   1646      INFP   0032      NXTE   1632      SAVRES 3634
CHKR   1600      INFST  0040      NXTEBK 1400      SCAT   0463
CLOSE  0004      INLIB  1200      NXTINF 1005      SCLOOP 0466
CONVYR 2670      INLSC1 1217      NXTOBK 2075      SETP   3613
CPYLUP 2067      INLSC2 1222      OCHAR  4011      SMALL  4451
CPYMOD 2060      INLSW  0037      OCHAR1 4052      SOEZ   2237
CRLF   3310      INSERT 2000      OCHAR2 4047      START  0177
CSLAST 0451      IOERR  0061      OCLOSE 4265      SVRES  7400
CSLOOP 0435      IOMES  0263      ODEVH  7200      SWATOL 7643
CS197  4646      IOMSG  4625      OFNAME 4063      SWMTOX 7644
DCTLW  7760      KEEP   4550      OHADDR 0252      SWYTO9 7645
DECODE 0005      LASTLB 0233      OLDLIB 0406      SYSDAT 7666
DELTO  1606      LAVAIL 0025      ON     4642      TAB    3317
DFALT  3433      LBV    4400      OOPEN  4200      THSBLK 0042
DHRES  7647      LB2BIG 1126      OUBLK  4226      TMP1   0001
DUPLUK 1433      LCLEN  2452      OUBUF  2400      TMP2   0002
ECHO   3416      LCLOSE 2400      OUCCNT 4311      TMP3   0003
EMPTY  3045      LIBBLK 0736      OUCOMN 4054      TMP4   0004
ENAM1  0044      LIBDVH 0021      OUCTL  6410      TMP5   0005
ENAM2  0045      LIBLEN 0737      OUCTLW 4260      TMP6   0006
ENAM3  0046      LIBNAM 0026      OUDWCT 4062      TMP7   0007
ENDCAT 1667      LIBU   0022      OUELEN 4227      TOOBIG 4505
ENTER  0003      LOOKUP 0002      OUFLD  0010      TTFLAG 0055
EQHI   7642      LSZERR 0745      OUFNAM 4103      TTI    3437
EQLO   7646      LUKMOD 1063      OUHNDL 4220      TTO    3200
ERROR  0007      L2BMSG 1266      OUJMP  4016      TTOCHR 3216
ESDCTR 0050      MAK8BT 2666      OUJMPE 4061      TTOTXT 3277
ESDEND 2050      MARKND 2036      OUNAME 4310      TTO2   3241
ESDLND 2040      MBUFS  0012      OUPOLD 4057      TTO2A  3252
ESDLUP 1405      MODBLK 0036      OUPTR  4060      TTPOS  0057
ESDTAB 1421      MODBUF 2400      OUREC  4262      TTWAIT 3217
FETCH  0001      MODDVH 0034      OUSETP 4000      TXTCA  4107
FILLLP 4270      MODLEN 0035      OUTDMP 4235      TXTRL  0204
FLSTR  4422      MODU   0033      OUTEMP 4056      UNLIB  4523
FNDLIB 0723      MONTHS 4652      OUTF1  7600      USR    0020
FTCHIN 1031      MOVRES 3652      OUTF2  7605      USRCOD 0735
FULCAT 0457      MUSTRD 3617      OUTF3  7612      USRIN  0010
FULFLG 0043      NCLUD  4573      OVFLO  1111      USROUT 0011

/LIBRA: F4 LIBRARIAN, V50A		  PAL8-V50Y 19-JUL-20 PAGE 38-1

VERS   0050      
VMESG  4404      
WAITOP 3400      
WHYCLS 4601      
WREP   3404      
X0     0010      
X1     0011      
X2     0012      
X3     0013      
X4     0014      
X5     0015      
X6     0016      
X7     0017      
ZCAT   0703      
ZCATB  0711      
ZCATC  0707      
ZCLOOP 0642      
ZTEST  0400      



ERRORS DETECTED: 0
LINKS GENERATED: 144