Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_1_19910112 - 6-sources/mail.crf
There are no other files named mail.crf in the archive.
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 1
MAIL	MAC	11-Jul-84 20:00	

BC					; UPD ID= 562, SNARK:<6.UTILITIES>MAIL.MAC.3,  11-Jul-84 23:00:58 by TGRADY
BC					;Edit 10 - Create the MAIL.CPY file to include To: and CC: lists, instead
BC					;	of letting MAILER do it.
BC					; UPD ID= 463, SNARK:<6.UTILITIES>MAIL.MAC.2,   8-Feb-84 08:28:13 by EVANS
BC					;Add flag to edit number for decimal display with I VER.
BC					;<5.UTILITIES>MAIL.MAC.3, 28-Oct-81 15:10:03, EDIT BY GRANT
BC					;Change major version to 5
BC					; UPD ID= 45, SNARK:<5.UTILITIES>MAIL.MAC.2,   2-Oct-81 13:19:10 by ZIMA
BC					;TCO 5.1556 - restore typeout of invalid user names on input parse;
BC					; give better error message.
BC					;<4.UTILITIES>MAIL.MAC.30,  3-Jan-80 15:25:56, EDIT BY R.ACE
BC					;UPDATE COPYRIGHT DATE
BC					;<4.UTILITIES>MAIL.MAC.29, 29-Oct-79 14:56:42, EDIT BY OSMAN
BC					;SSAY => SAY
BC					;<4.UTILITIES>MAIL.MAC.28,  2-Jul-79 12:37:40, EDIT BY R.ACE
BC					;FIX SPELLING OF "OCCURRED"
BC					;<4.UTILITIES>MAIL.MAC.27, 10-Mar-79 14:04:03, EDIT BY KONEN
BC					;UPDATE COPYRIGHT FOR RELEASE 4
BC					;<4.UTILITIES>MAIL.MAC.26, 26-Feb-79 16:47:31, EDIT BY DBELL
BC					;ON A BUSY MAIL.CPY, REDO THE GTJFN SINCE OTHERWISE OPENF CAN ALWAYS FAIL.
BC					;<4.UTILITIES>MAIL.MAC.25, 20-Feb-79 16:30:55, EDIT BY DBELL
BC					;TCO 4.2194 - HANDLE BUSY MAIL.CPY FILES
BC					;<4.UTILITIES>MAIL.MAC.24, 24-Jan-79 12:38:16, Edit by KONEN
BC					;REQUIRE CMD.REL TO BE IN DSK:
BC					;<4.UTILITIES>MAIL.MAC.23,  5-Oct-78 16:15:41, EDIT BY HALL
BC					;IN RETRY, CALL COMND WITH FUNCTION .CMIFI INSTEAD OF .CMOFI FOR
BC					; MAIL.CPY
BC					;<4.UTILITIES>MAIL.MAC.22, 30-Aug-78 09:55:20, EDIT BY COWER
BC					;FIXED PROBLEM WHERE MAIL CAN FIND MAILER NOT RUNNING WHEN IT IS
BC					;IN AGAIN:
BC					;<4.UTILITIES>MAIL.MAC.20,  4-Aug-78 16:57:42, EDIT BY OSMAN
BC					;DON'T KEEP SAYING "TYPE MESSAGE..." ON EVERY ^R OF FIRST MESSAGE LINE
BC					;<OSMAN>MAIL.MAC.1,  3-Aug-78 11:33:57, EDIT BY OSMAN
BC					;ALLOW CR WITHOUT COMMA IN INDIRECT FILE LIST OF USER NAMES (USED TO WORK)
BC					;<4.UTILITIES>MAIL.MAC.13, 24-May-78 14:33:21, EDIT BY OSMAN
BC					;STORE USERS RIGHT IN BIGBUF, NO NEED TO BLT FROM USRBLK
BC					;<4.UTILITIES>MAIL.MAC.2, 18-May-78 15:40:55, EDIT BY OSMAN
BC					;USE COMND JSYS
BC					;<4.UTILITIES>MAIL.MAC.1, 12-Nov-77 18:02:58, EDIT BY MILLER
BC					;MAKE SURE MESSAGE ENDS WITH CRLF. AT SALUTATION FILE
BC
BC
BC
BC
BC					;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
BC					;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
BC					;
BC					;COPYRIGHT (C) 1976,1977,1978,1979,1980 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
BC
BTITLEC						TITLE MAIL
BSEARCHC						SEARCH MONSYM,MACSYM,CMD
B.REQUIC						.REQUIRE SYS:MACREL,CMD
BSALLC						SALL
BIFNDEF.PSECT.PSECTC						IFNDEF .PSECT,<
BC						.DIRECT .XTABM>
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 1-1
MAIL	MAC	11-Jul-84 20:00	

BC
BC					;PROGRAM VERSION DEFINITIONS
BC
BPRGVERC			000005		PRGVER==5			;VERSION
BVI%DECPRGEDT%....UCU		000000000000#		PRGEDT==VI%DEC+^D10		;EDIT
BPRGMINC			000000		PRGMIN==0			;MINOR VERSION
BPRGCSTC			000000		PRGCST==0			;CUSTOMER ID
BC
BC
BDEFINEC					DEFINE ASSIGN(A,B,C)
BASSIGNC					<A=B
BC					B==B+C
BC					>
BC					;DEFINE REGISTERS
BC
BFC			000000		F==0
BAC			000001		A==1
BBC			000002		B==2
BCC			000003		C==3
BDC			000004		D==4
BWC			000005		W==5
BW1C			000006		W1==6
BW2C			000007		W2==7
BW3C			000010		W3==10
BPC			000017		P==17
BC
BC					;DEFINE VALUES IN F
BC
BS.PRFC			000001		S.PRF==1
BS.ENDC			000002		S.END==2
BS.SAWC			000004		S.SAW==4
BS.BLAC			000010		S.BLA==10
BS.ERRC			000020		S.ERR==20
BC
BNACK1C			000002		NACK1==2			;TOATL WIPEOUT FORM MAILER
BNACK2C			000003		NACK2==3			;QUOTA EXCEEDED
BC
BC					;	Define a macro to handle generic JSYS error conditions
BC
BDEFINEJERRC					DEFINE JERR ($TXT),<
BC						ERJMP [CALL JSERR0	;;REPORT THE JSYS ERROR STRING FIRST
BC							TMSG <
BC					$TXT>				;;And tack on the local error string
BC							JRST .+1]	;;Rejoin mainline code
BC					>
BC					;LOCAL STORAGE
BC
BCMDSTGCMDBLNCMDBUFBLOCKCMDBLNCMDACSBLOCKCMDBLNATMBLNATMBUFBLOCKATMBLNSBKBLOCKCJFNLNCJFNBKBLOCKCJFNLNREPARAC	000362'	000000	000000		CMDSTG				;COMND JSYS STORAGE
BCMDFRMC	000363'	000000	000000
BCMDPLNCMDPDLBLOCKCMDPLNDATAC			100000		DATA==100000
BUSERSC			000144		USERS==^D100
BPDSLC			000310		PDSL==^D200			;SIZE OF PDL
BSPTRC	000564'	000000	000000		SPTR:	0			;BYTE POINTER TO END OF MESSAGE AREA SO FAR
BSAVWZC	000565'	000 00 0 00 000000 	SAVW:	Z 0
BPARTRMZC	000566'	000 00 0 00 000000 	PARTRM:	Z 0
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 1-2
MAIL	MAC	11-Jul-84 20:00	

BSAVCNTZC	000567'	000 00 0 00 000000 	SAVCNT:	Z 0
BSYSCODC		777777	777776		SYSCOD==-2			;SPECIAL SYSTEM CODE
BNOACKBC			000000		NOACKB==0			;DEFAULT MESSAGE TYPE
BMINMSGC			000001		MINMSG==1			;FIRST ERROR MESSAGE
BMSGTBLASCIZC	000570'	000000	002030'		MSGTBL:	[ASCIZ / Quota exceeded/]
BMSGTBLMINMSGMAXMSGC			000002		MAXMSG==.-MSGTBL+MINMSG		;LAST MESSAGE +1
BC
BPIDGETIP%CPDIP%CPDC	000571'	010000	000000		PIDGET:	IP%CPD			;GET PID
BC	000572'	000000	000000			0
BC	000573'	000000	000000			0			;TO INFO
BENDMSGENDMSGC	000574'	000006	000575'			ENDMSG-.,,.+1		;FOR INFO
BC	000575'	000001	000001			1,,1			;GET PID FOR NAME
BC	000576'	000000	000000			0			;NO COPY
BASCIZC	000577'	133 123 131 123 124 		ASCIZ /[SYSTEM]MAILER/
BC	000600'	105 115 135 115 101 
BC	000601'	111 114 105 122 000 
BENDMSGC	000602'				ENDMSG:
BCPYJFNBLOCKC	000602'				CPYJFN:	BLOCK 1
BBUSYCTBLOCKC	000603'				BUSYCT:	BLOCK 1			;BUSY COUNTER FOR OPENF
BMYUSERBLOCKC	000604'				MYUSER:	BLOCK	1		;Place to keep my user number
BPDLBLOCKPDSLC	000605'				PDL:	BLOCK PDSL
BSIZEC			062000		SIZE==1000*^D50			;STRING AREA
BASSIGNDATABIGBUFDATASIZEDATAC					ASSIGN BIGBUF,DATA,SIZE
BBIGBUFUSRBLKC			100001		USRBLK=BIGBUF+1
BCURRZC	001115'	000 00 0 00 000000 	CURR:	Z 0			;SAVE CURRENT STRING POINTRE
BDIRSTRBLOCKC	001116'				DIRSTR:	BLOCK ^D32		;FOR FILE NAME
BASSIGNDATAHOLDDATADATAC					ASSIGN HOLD,DATA,100000		;FOR OLD MESSAGES
BC
BC					;DEFINE ENTRY VECTOR
BC
BENTVECJRSTSTARTC	001156'	254 00 0 00 001161'	ENTVEC:	JRST START		;MAIN ENTRY
BJRSTRETRYC	001157'	254 00 0 00 002020'		JRST RETRY		;REENTER POINT
BPRGVERPRGVERPRGMINPRGEDTPRGCSTC	001160'	000000000000#			PRGVER_^D24+PRGMIN_^D18+PRGEDT+PRGCST_^D33
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 2
MAIL	MAC	11-Jul-84 20:00	

BC
BC
BC					;CODE
BC
BSTARTRESETC	001161'	104 00 0 00 000147 	START:	RESET			;CLEAR THE WORLD
BMOVEPIOWDPDSLPDLC	001162'	200 17 0 00 002034'		MOVE P,[IOWD PDSL,PDL]	;STACK
BCALLCMDINIC	001163'	260 17 0 00 000000*		CALL CMDINI		;INITIALIZE COMND JSYS
BHRROIABIGBUFC	001164'	561 01 0 00 100000 		HRROI A,BIGBUF
BHRROIBASCIIC	001165'	561 02 0 00 002035'		HRROI B,[ASCII /POBOX:</] ;GET DEVICE STRING
BSETZMCC	001166'	402 00 0 00 000003 		SETZM C
BSOUTC	001167'	104 00 0 00 000053 		SOUT
BERJMPC	001170'	320 16 0 00 001171'		 ERJMP	.+1
BPUSHPAC	001171'	261 17 0 00 000001 		PUSH P,A		;[]SAVE POINTER TO STRING
BGJINFC	001172'	104 00 0 00 000013 		GJINF			;GET LOGGED IN DIRECTORY
BMOVEBAC	001173'	200 02 0 00 000001 		MOVE B,A		;GET USER NUMBER
BMOVEMAMYUSERC	001174'	202 01 0 00 000604'		MOVEM A,MYUSER		;Save my user number for later
BPOPPAC	001175'	262 17 0 00 000001 		POP P,A			;[]RESTORE POINTER TO STRING
BDIRSTC	001176'	104 00 0 00 000041 		DIRST			;GET THE NAME
BJFCLC	001177'	255 00 0 00 000000 		 JFCL
BHRROIBASCIZC	001200'	561 02 0 00 002037'		HRROI B,[ASCIZ />MAIL.CPY/] ;THE FILE NAME
BSETZCC	001201'	400 03 0 00 000000 		SETZ C,
BSOUTC	001202'	104 00 0 00 000053 		SOUT			;MAKE NAME
BSETOMBUSYCTC	001203'	476 00 0 00 000603'		SETOM BUSYCT		;INITIALIZE BUSY COUNT
BOPNLOPMOVXGJ%FOUGJ%SHT..MX1.IFN.IF..MX2IFE..MX1IFE..MX2IFE..MX1..MX2MOVSIA..MX1C	001204'	205 01 0 00 400001 	OPNLOP:	MOVX A,GJ%FOU!GJ%SHT
BIFE..MX2IFE..MX2IFE..MX2HRROIBBIGBUFC	001205'	561 02 0 00 100000 		HRROI B,BIGBUF		;WHERE NAME IS
BGTJFNC	001206'	104 00 0 00 000020 		GTJFN			;GET A JFN
BJRSTCANTC	001207'	254 00 0 00 002005'		 JRST CANT		;OOPS. FAILED
BMOVEMACPYJFNC	001210'	202 01 0 00 000602'		MOVEM A,CPYJFN		;SAVE IT FOR LATER
BMOVXOF%RDOF%WR..MX1.IFN.IF..MX2IFE..MX1..MX2MOVEIB..MX1C	001211'	201 02 0 00 300000 		MOVX B,OF%RD+OF%WR	;WANT READ AND WRITE
BIFE..MX2IFE..MX2IFE..MX2IFE..MX2OPENFC	001212'	104 00 0 00 000021 		OPENF			;MAKE SURE IT WILL OPEN
BJRSTCAIEAOPNX9C						 JRST [	CAIE A,OPNX9	;ERROR, IS IT INVALID SIMULTANEOUS ACCESS?
BJRSTCANTC							JRST CANT	;NO, GO LOSE
BHRROIAASCIZC							HRROI A,[ASCIZ/
BC					File MAIL.CPY is opened by another job, waiting.../]
BAOSNBUSYCTC							AOSN BUSYCT	;FIRST TIME?
BPSOUTC							PSOUT		;YES, SAY WE'RE WAITING
BMOVEIAC							MOVEI A,^D1000	;GET SLEEP TIME
BDISMSC							DISMS		;WAIT A BIT
BMOVEACPYJFNC							MOVE A,CPYJFN	;RESTORE JFN
BRLJFNC							RLJFN		;RELEASE IT
BJFCLC							JFCL
BJRSTOPNLOPC	001213'	254 00 0 00 002054'			JRST OPNLOP]	;AND TRY AGAIN
BHRROIAASCIZC						HRROI A,[ASCIZ/OK
BC	001214'	561 01 0 00 002067'	/]				;GET FINAL TEXT
BSKIPLBUSYCTC	001215'	331 00 0 00 000603'		SKIPL BUSYCT		;DID WE EVER WAIT?
BPSOUTC	001216'	104 00 0 00 000076 		PSOUT			;YES, SAY ALL DONE
BMOVXC						MOVX A,CM%WKF!CM%XIF	;NO SPECIAL WAKEUP, AND ALLOW STANDARD INDIRECT FILES UNTIL 
BCM%WKFCM%XIF..MX1.IFN.IF..MX2IFE..MX1IFE..MX2IFE..MX1..MX2MOVSIA..MX1C	001217'	205 01 0 00 003000 	MESSAGE ITSELF
BIFE..MX2IFE..MX2IFE..MX2ANDCAMASBK.CMFLGC	001220'	412 01 0 00 000322'		ANDCAM A,SBK+.CMFLG	;TURN OFF CM%XIF IN FLAGS WORD
BPROMPTHRROIAASCIZC	001221'	561 01 0 00 002070'		PROMPT <To: >
BCALLDPROMPC	001222'	260 17 0 00 000000*
BMOVSIWUSERSC	001223'	205 05 0 00 777634 		MOVSI W,-USERS		;AOBJN POINTER TO LIST
BMOVEIAC	001224'	201 01 0 00 000001 		MOVEI A,1		;READING TO'S
BPUSHJPREALC	001225'	260 17 0 00 001237'		PUSHJ P,REAL		;CONVERT TO NUMBERS
BPROMPTHRROIAASCIZC	001226'	561 01 0 00 002071'		PROMPT <CC: >
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 2-1
MAIL	MAC	11-Jul-84 20:00	

BCALLDPROMPC	001227'	260 17 0 00 001222*
BMOVEIAC	001230'	201 01 0 00 000000 		MOVEI A,0		;NOT READING TO'S NOW
BPUSHJPREALC	001231'	260 17 0 00 001237'		PUSHJ P,REAL		;YES. CONVERT EM
BMOVEIBUSRBLKWC	001232'	201 02 0 05 100001 		MOVEI B,USRBLK(W)	;WHERE TO START IN BIGBUF
BSETZMBIGBUFC	001233'	402 00 0 00 100000 		SETZM BIGBUF		;NO FLAGS BY DEFAULT
BHRLIBC	001234'	505 02 0 00 440700 		HRLI B,440700		;SP FOR TEXT
BMOVEMBSPTRC	001235'	202 02 0 00 000564'		MOVEM B,SPTR		;REMEMBER POINTER
BJRSTDOSTUFC	001236'	254 00 0 00 001371'		JRST DOSTUF		;AND GO DI IT
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 3
MAIL	MAC	11-Jul-84 20:00	

BC
BREALSTKVAR..STKRRADIX..STKNIRPIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFLLEN.IFDEFINELLENZLLENP$LLENIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFLLEN2.IFDEFINELLEN2ZLLEN2P$LLEN2IFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFMPTR.IFDEFINEMPTRZMPTRP$MPTRIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFPPTR.IFDEFINEPPTRZPPTRP$PPTRIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFSELF.IFDEFINESELFZSELFP$SELFIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFITEM.IFDEFINEITEMZITEMP$ITEMIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFTWOFLG.IFDEFINETWOFLGZTWOFLGP$TWOFLIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFCOMFLG.IFDEFINECOMFLGZCOMFLGP$COMFLJSP.A16.STKSTC	001237'	265 16 0 00 000000*	REAL:	STKVAR <LLEN,LLEN2,MPTR,PPTR,SELF,ITEM,TWOFLG,COMFLG>
B..STKN..STKN..STKNC	001240'	000010	000010
BRADIX..STKRDEFINEENDSV.SETZMCOMFLGPC	001241'	402 00 0 17 777767 		SETZM COMFLG		;NO COMMA SEEN YET
BMOVEMATWOFLGPC	001242'	202 01 0 17 777770 		MOVEM A,TWOFLG		;REMEMBER WHETHER READING TO'S OR NOT
BGJINFC	001243'	104 00 0 00 000013 		GJINF			;GET USER NUMBER
BMOVEMASELFPC	001244'	202 01 0 17 777772 		MOVEM A,SELF		;REMEMBER USER NUMBER
BLOOPMOVEIAFLDDB.C					LOOP:	MOVEI A,[FLDDB. .CMCFM,,,,,[FLDDB. .CMUSR,CM%SDH,,<
BC					Type user names separated by commas. The list is terminated
BC					by a <CR>. The entire list may be read from a file by typing:
BC					
BC						@FILESPEC
BC					
BC					Typing a "?" gives this message.
BC					>,,[FLDDB. .CMTOK,CM%SDH,<-1,,[ASCIZ /./]>,,,[FLDDB. .CMKEY,CM%SDH,[
BC							1,,1
BFLD.CMCFMCM%FNCCM%FNCCM%FNCFLDDB.FLD.CMUSRCM%FNCCM%FNCCM%FNCCM%SDHFLDDB.FLD.CMTOKCM%FNCCM%FNCCM%FNCCM%SDHFLDDB.FLD.CMKEYCM%FNCCM%FNCCM%FNCCM%SDH..XXIFNBIFNB..XX..XXIFNBTIFBIFNBASCIZIFBIFNBIFBIFNBIFNB..XXIFNBIFNB..XX..XXIFNBASCIZIFBIFNBIFBIFNBIFNB..XXIFNBCM%HPP..XX..XXIFNB..XX..XXIFNBIFBIFNBPOINTASCIZIFBIFNB..XXIFNBIFNB..XX..XXIFNBIFBIFNBIFBIFNBIFNBC	001245'	201 01 0 00 002152'			T SYSTEM,0]]]]]
BSKIPNCOMFLGPC	001246'	336 00 0 17 777767 		SKIPN COMFLG		;COMMA WAS LAST?
BSKIPETWOFLGPC	001247'	332 00 0 17 777770 		SKIPE TWOFLG		;OR DOING THE TO'S?
BMOVEAAC	001250'	200 01 0 01 000000 		MOVE A,(A)		;YES, SO REQUIRE AT LEAST ONE NAME
BCALLRFLDEC	001251'	260 17 0 00 000000*		CALL RFLDE		;READ NAME
BJRSTNAMERC	001252'	254 00 0 00 001320'		 JRST NAMER		;FAILED, GO TRY TO PRINT GOOD ERROR
BLDBCCC	001253'	135 03 0 00 002154'		LDB C,[331100,,(C)]	;SEE IF DOT TYPED
BADJSPWC	001254'	105 05 0 00 777777 		ADJSP W,-1		;SO W POINTS AT LAST NAME IF WE GO TO FINNAM
BCAINC.CMCFMC	001255'	306 03 0 00 000010 		CAIN C,.CMCFM		;END OF LINE?
BJRSTFINNAMC	001256'	254 00 0 00 001277'		JRST FINNAM		;YES
BADJSPWC	001257'	105 05 0 00 000001 		ADJSP W,1		;UNCLOBBER W TO POINT AT NEW SLOT
BCAINC.CMTOKC	001260'	306 03 0 00 000023 		CAIN C,.CMTOK
BMOVEBSELFPC	001261'	200 02 0 17 777772 		MOVE B,SELF		;YES, USE SELF
BCAINC.CMKEYC	001262'	306 03 0 00 000000 		cain c,.cmkey		;user typed "system"?
BMOVEBSYSCODSYSCODC	001263'	200 02 0 00 002155'		move b,[syscod]		;yes, use special code
BMOVEMBUSRBLKWC	001264'	202 02 0 05 100001 		MOVEM b,USRBLK(W)	;STORE NUMBER
BMOVEIAFLDDB.FLD.CMCFMCM%FNCCM%FNCCM%FNCFLDDB.FLD.CMCMACM%FNCCM%FNCCM%FNC..XXIFNBIFNB..XX..XXIFNBIFBIFNBIFBIFNBIFNB..XXIFNBIFNB..XX..XXIFNBIFBIFNBIFBIFNBIFNBC	001265'	201 01 0 00 002160'		MOVEI A,[FLDDB. .CMCFM,,,,,[FLDDB. .CMCMA]]
BCALLRFLDEC	001266'	260 17 0 00 001251*		CALL RFLDE		;GET COMMA OR END OF LINE
BJRSTR00C	001267'	254 00 0 00 001273'		 JRST R00		;NEITHER, MIGHT BE INDIRECT FILE WITH CR IN MIDDLE OF LIST!
BLDBCCC	001270'	135 03 0 00 002154'		LDB C,[331100,,(C)]	;SEE WHICH
BCAINC.CMCFMC	001271'	306 03 0 00 000010 		CAIN C,.CMCFM		;END OF LINE?
BJRSTFINNAMC	001272'	254 00 0 00 001277'		JRST FINNAM		;YES
BR00SETOMCOMFLGPC	001273'	476 00 0 17 777767 	R00:	SETOM COMFLG		;NO, SET COMMA FLAG
BAOBJNWLOOPC	001274'	253 05 0 00 001245'		AOBJN W,LOOP		;GET MORE
BHRROIAASCIZC						HRROI A,[ASCIZ /
BC					%Too many user names. 100 is maximum.
BC	001275'	561 01 0 00 002162'	/]
BPSOUTC	001276'	104 00 0 00 000076 		PSOUT			;TOO MANY. SAY SO
BFINNAMMOVEIAWC	001277'	201 01 0 05 000001 	FINNAM:		MOVEI A,1(W)		;GET NUMBER OF ENTRIES IN LIST
BMOVEMALLENPC	001300'	202 01 0 17 777776 		MOVEM A,LLEN		;REMEMBER
BSETZBAMPTRPC	001301'	403 01 0 17 777774 		SETZB A,MPTR		;POINTER TO ITEM BEING CHECKED
BMLUPCAMLALLENPC	001302'	311 01 0 17 777776 	MLUP:	CAML A,LLEN		;ANY MORE TO CHECK?
BJRSTCLENUPC	001303'	254 00 0 00 001351'		JRST CLENUP		;NO
BMOVEAUSRBLKAC	001304'	200 01 0 01 100001 		MOVE A,USRBLK(A)	;YES, GET NEXT ONE TO BE CHECKED
BMOVEMAITEMPC	001305'	202 01 0 17 777771 		MOVEM A,ITEM		;APPROACH THE BENCH!
BSETZBBPPTRPC	001306'	403 02 0 17 777773 		SETZB B,PPTR		;YES, RESET POINTER TO WHAT TO COMPARE IT TO
BMLUP1CAMLBMPTRPC	001307'	311 02 0 17 777774 	MLUP1:	CAML B,MPTR		;ABOUT TO COMPARE ITEM WITH ITSELF?
BJRSTIOKC	001310'	254 00 0 00 001316'		JRST IOK		;YES, SO ITEM IS O.K.
BMOVEAUSRBLKBC	001311'	200 01 0 02 100001 		MOVE A,USRBLK(B)	;NO, GET NEXT ITEM FOR COMPARISON
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 3-1
MAIL	MAC	11-Jul-84 20:00	

BCAMNAITEMPC	001312'	316 01 0 17 777771 		CAMN A,ITEM		;FOUND A DUPLICATE?
BJRSTPURGEC	001313'	254 00 0 00 001335'		JRST PURGE		;YES, GO GET RID OF IT
BAOSBPPTRPC	001314'	350 02 0 17 777773 		AOS B,PPTR		;NO, KEEP SEARCHING
BJRSTMLUP1C	001315'	254 00 0 00 001307'		JRST MLUP1
BC
BIOKAOSAMPTRPC	001316'	350 01 0 17 777774 	IOK:	AOS A,MPTR		;ITEM IS O.K., PROCEED WITH NEXT
BJRSTMLUPC	001317'	254 00 0 00 001302'		JRST MLUP
BC
BC					;GET HERE ON USER NAME ERROR
BC
BNAMERHRROIAASCIZC	001320'	561 01 0 00 002173'	NAMER:	HRROI A,[ASCIZ /Invalid user name - /] ;[8] ERROR TEXT
BESOUTC	001321'	104 00 0 00 000313 		ESOUT			;TYPE ERROR MESSAGE
BHRROIAATMBUFC	001322'	561 01 0 00 000161'		HRROI A,ATMBUF		;[8] POINT TO INVALID NAME STRING
BPSOUTC	001323'	104 00 0 00 000076 		PSOUT			;[8] TYPE IT OUT
BHRROIAASCIZC	001324'	561 01 0 00 002200'		HRROI A,[ASCIZ/ - /]	;[9] ANOTHER SEPARATOR
BPSOUTC	001325'	104 00 0 00 000076 		PSOUT			;[9] OUTPUT IT
BMOVEIA.PRIOUC	001326'	201 01 0 00 000101 		MOVEI A,.PRIOU		;[9] THEN PREPARE
BHRLOIB.FHSLFC	001327'	525 02 0 00 400000 		HRLOI B,.FHSLF		;[9]  AND OUTPUT
BSETZMCC	001330'	402 00 0 00 000003 		SETZM C			;[9]  THE MESSAGE FOR THE LAST ERROR
BERSTRC	001331'	104 00 0 00 000011 		ERSTR			;[9] BY ERSTR
BJFCLC	001332'	255 00 0 00 000000 		 JFCL			;[9] IGNORE ERRORS HERE
BJFCLC	001333'	255 00 0 00 000000 		 JFCL			;[9]
BJRSTCMDER1C	001334'	254 00 0 00 000000*		JRST CMDER1		;GO BACK AND ALLOW ERROR CORRECTION
BC
BPURGETMSGHRROI.AC1ASCIZC	001335'	561 01 0 00 002201'	PURGE:	TMSG <%Duplicate name purged - >
BPSOUTC	001336'	104 00 0 00 000076 
BMOVEAMPTRPC	001337'	200 01 0 17 777774 		MOVE A,MPTR		;GET POINTER TO ITEM BEING PURGED
BMOVEBUSRBLKAC	001340'	200 02 0 01 100001 		MOVE B,USRBLK(A)	;GET USER NUMBER
BMOVEIA.PRIOUC	001341'	201 01 0 00 000101 		MOVEI A,.PRIOU
BDIRSTC	001342'	104 00 0 00 000041 		DIRST			;PRINT NAME
BJSERRJSERRC	001343'	000000000000#			 JSERR			;SHOULDN'T FAIL
BTMSGC						TMSG <
BHRROI.AC1ASCIZC	001344'	561 01 0 00 002207'	>
BPSOUTC	001345'	104 00 0 00 000076 
BMOVEAMPTRPC	001346'	200 01 0 17 777774 		MOVE A,MPTR		;GET POINTER AGAIN
BSETOMUSRBLKAC	001347'	476 00 0 01 100001 		SETOM USRBLK(A)		;SET NAME TO -1 TO REMEMBER IT'S BEEN PURGED
BJRSTIOKC	001350'	254 00 0 00 001316'		JRST IOK		;CONTINUE SCANNING NAMES
BC
BCLENUPSETZBBMPTRPC	001351'	403 02 0 17 777774 	CLENUP:	SETZB B,MPTR		;PREPARE TO REMOVE -1'S
BSETZMLLEN2PC	001352'	402 00 0 17 777775 		SETZM LLEN2		;INITIALIZE OTHER LENGTH (AFTER CLEANUP)
BCLEN1CAMLBLLENPC	001353'	311 02 0 17 777776 	CLEN1:	CAML B,LLEN		;DONE CLEANING UP?
BJRSTCLEN2C	001354'	254 00 0 00 001364'		JRST CLEN2		;YES
BMOVEAUSRBLKBC	001355'	200 01 0 02 100001 		MOVE A,USRBLK(B)	;NO, GET ENTRY
BAOJEACLEN3C	001356'	342 01 0 00 001362'		AOJE A,CLEN3		;JUMP IF THIS ENTRY NEEDS REMOVING
BAOSBLLEN2PC	001357'	350 02 0 17 777775 		AOS B,LLEN2		;ENTRY O.K., COUNT IT
BSOJAC	001360'	360 01 0 00 000000 		SOJ A,			;FIX CLOBBERED NAME
BMOVEMAUSRBLKBC	001361'	202 01 0 02 100000 		MOVEM A,USRBLK-1(B)
BCLEN3AOSBMPTRPC	001362'	350 02 0 17 777774 	CLEN3:	AOS B,MPTR		;STEP TO NEXT ENTRY
BJRSTCLEN1C	001363'	254 00 0 00 001353'		JRST CLEN1		;LOOP
BC
BCLEN2MOVEALLEN2PC	001364'	200 01 0 17 777775 	CLEN2:	MOVE A,LLEN2
BSUBALLENPC	001365'	274 01 0 17 777776 		SUB A,LLEN		;SEE HOW MUCH LIST SHRUNK BY
BADJSPWAC						ADJSP W,2(A)		;UPDATE LIST POINTER BUT LEAVE ROOM FOR NULL, AND INCREMENT 
BC	001366'	105 05 0 01 000002 	TO NEXT FREE SLOT
BSETZMUSRBLKWC	001367'	402 00 0 05 100000 		SETZM USRBLK-1(W)	;MARK END OF LIST WITH NULL
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 3-2
MAIL	MAC	11-Jul-84 20:00	

BRETC	001370'	263 17 0 00 000000 		RET			;ALL DONE
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 4
MAIL	MAC	11-Jul-84 20:00	

BC
BC					;DO MESSAGE STUFF
BC
BDOSTUFMOVEASPTRC	001371'	200 01 0 00 000564'	DOSTUF:	MOVE A,SPTR		;Get pointer into bigbuf
BHRROIBASCIZC	001372'	561 02 0 00 002210'		HRROI B,[ASCIZ/Date: /]	;Get Date: header
BSETZCC	001373'	400 03 0 00 000000 		SETZ C,			;Copy the whole string
BSOUT%C	001374'	104 00 0 00 000053 		SOUT%			;
BJFCLC	001375'	255 00 0 00 000000 		 JFCL
BSETOBC	001376'	474 02 0 00 000000 		SETO B,			;Set to -1 for entire date
BMOVXOT%4YROT%SPAOT%NCOOT%NSCOT%SCLOT%TMZ..MX1.IFN.IF..MX2IFE..MX1IFE..MX2IFE..MX1..MX2MOVSIC..MX1C	001377'	205 03 0 00 012261 		MOVX C,OT%4YR!OT%SPA!OT%NCO!OT%NSC!OT%SCL!OT%TMZ
BIFE..MX2IFE..MX2IFE..MX2ODTIM%C	001400'	104 00 0 00 000220 		ODTIM%			;Get the formatted date/time
BJFCLC	001401'	255 00 0 00 000000 		 JFCL
BHRROIBASCIZC						HRROI B,[ASCIZ/
BC	001402'	561 02 0 00 002212'	From: /]
BSETZCC	001403'	400 03 0 00 000000 		SETZ C,			;Move the From: header
BSOUT%C	001404'	104 00 0 00 000053 		SOUT%			;
BJFCLC	001405'	255 00 0 00 000000 		 JFCL
BMOVEBMYUSERC	001406'	200 02 0 00 000604'		MOVE B,MYUSER		;Get my user number
BDIRST%C	001407'	104 00 0 00 000041 		DIRST%			;And convert it into a name
BJFCLC	001410'	255 00 0 00 000000 		 JFCL
BHRROIBASCIZC						HRROI B,[ASCIZ/
BC	001411'	561 02 0 00 002214'	To: /]
BSETZCC	001412'	400 03 0 00 000000 		SETZ C,			;Clear counter
BSOUT%C	001413'	104 00 0 00 000053 		SOUT%			;Move To: Header into place
BJFCLC	001414'	255 00 0 00 000000 		 JFCL			;
BMOVEIDUSRBLKC	001415'	201 04 0 00 100001 		MOVEI D,USRBLK		;Point to start of user list
BCALLDOUSRC	001416'	260 17 0 00 001471'		CALL DOUSR		;Go put the TO: list into the message
BMOVEMASPTRC	001417'	202 01 0 00 000564'		MOVEM A,SPTR		;Save the string pointer	
BHRROIBASCIZC						HRROI B,[ASCIZ/
BC	001420'	561 02 0 00 002216'	Cc: /]				;
BSETZCC	001421'	400 03 0 00 000000 		SETZ C,			;Put the entire string the header...
BSOUT%C	001422'	104 00 0 00 000053 		SOUT%			;
BJFCLC	001423'	255 00 0 00 000000 		 JFCL			;
BAOSDC	001424'	350 00 0 00 000004 		AOS D			;Bump the list pointer to the CC: list.
BCALLDOUSRC	001425'	260 17 0 00 001471'		CALL DOUSR		;Now go put the CC: list into the message too.
BHRROIBASCIZC						HRROI B,[ASCIZ /
BC	001426'	561 02 0 00 002220'	Subject: /]
BSETZCC	001427'	400 03 0 00 000000 		SETZ C,
BSOUT%C	001430'	104 00 0 00 000053 		SOUT%			;PUT IT IN
BJFCLC	001431'	255 00 0 00 000000 		 JFCL
BMOVEMASPTRC	001432'	202 01 0 00 000564'		MOVEM A,SPTR		;REMEMBER POINTER
BPROMPTHRROIAASCIZC	001433'	561 01 0 00 002223'		PROMPT <Subject: >
BCALLDPROMPC	001434'	260 17 0 00 001227*
BMOVEIAFLDDB.C						MOVEI A,[FLDDB. .CMTXT,CM%SDH,,<
BC					Type a single line terminated with a <CR> which summarizes
BC					the message you are sending.
BFLD.CMTXTCM%FNCCM%FNCCM%FNCCM%SDH..XXIFNBCM%HPP..XX..XXIFNB..XX..XXIFNBIFBIFNBPOINTASCIZIFBIFNBC	001435'	201 01 0 00 002250'	>]
BCALLCFIELDC	001436'	260 17 0 00 000000*		CALL CFIELD		;READ SUBJECT LINE AND CRLF
BMOVEASPTRC	001437'	200 01 0 00 000564'		MOVE A,SPTR		;STORE SUBJECT LINE
BHRROIBATMBUFC	001440'	561 02 0 00 000161'		HRROI B,ATMBUF
BMOVEICC	001441'	201 03 0 00 000000 		MOVEI C,0
BSOUTC	001442'	104 00 0 00 000053 		SOUT
BHRROIBASCIZC						HRROI B,[ASCIZ /
BC
BC	001443'	561 02 0 00 002253'	/]
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 4-1
MAIL	MAC	11-Jul-84 20:00	

BSOUTC	001444'	104 00 0 00 000053 		SOUT
BMOVEMASBK.CMBFPC	001445'	202 01 0 00 000325'		MOVEM A,SBK+.CMBFP	;USE LARGE BUFFER FOR MESSAGE
BMOVEMASBK.CMPTRC	001446'	202 01 0 00 000326'		MOVEM A,SBK+.CMPTR
BMOVEIASIZEC	001447'	201 01 0 00 372000 		MOVEI A,SIZE*5		;LARGE NUMBER OF CHARACTERS ALLOWED IN MESSAGE
BMOVEMASBK.CMCNTC	001450'	202 01 0 00 000327'		MOVEM A,SBK+.CMCNT
BMOVXCM%WKFCM%XIF..MX1.IFN.IF..MX2IFE..MX1IFE..MX2IFE..MX1..MX2MOVSIA..MX1C	001451'	205 01 0 00 003000 		MOVX A,CM%WKF!CM%XIF	;WE WANT CONTROL ON ^Z, AND WE WANT TO INTERPRET @ OURSELF
BIFE..MX2IFE..MX2IFE..MX2IORMASBK.CMFLGC	001452'	436 01 0 00 000322'		IORM A,SBK+.CMFLG
BONEMORTMSGC					ONEMOR:	TMSG <Message (Terminate with ESC or CTRL/Z):
BC					
BHRROI.AC1ASCIZC	001453'	561 01 0 00 002254'	>
BPSOUTC	001454'	104 00 0 00 000076 
BPROMPTHRROIAASCIZC	001455'	561 01 0 00 002033'		PROMPT <>
BCALLDPROMPC	001456'	260 17 0 00 001434*
BMOVEIAFLDDB.C						MOVEI A,[FLDDB. .CMTOK,CM%SDH,<-1,,[ASCIZ /@/]>,<
BC					Type message and terminate with a CTRL/Z or an ESC. The message
BC					may be read from a file by typing:
BC					
BC						@FILESPEC
BC					
BC					Typing a "?" gives this message.
BFLD.CMTOKCM%FNCCM%FNCCM%FNCCM%SDHFLDDB.FLD.CMUQSCM%FNCCM%FNCCM%FNC..XXIFNBIFNB..XX..XXIFNBEXPIFBIFNBIFBIFNBIFNB..XXIFNBCM%HPP..XX..XXIFNB..XX..XXIFNBASCIZIFBIFNBPOINTASCIZIFBIFNBC	001457'	201 01 0 00 002333'	>,,[FLDDB. .CMUQS,,[EXP 1B<"">!1B<"">,0,0,0]]]
BCALLRFIELDC	001460'	260 17 0 00 000000*		CALL RFIELD		;READ @ OR THE MESSAGE ITSELF
BLDBCCC	001461'	135 03 0 00 002154'		LDB C,[331100,,(C)]	;SEE WHAT WAS TYPED
BCAINC.CMTOKC	001462'	306 03 0 00 000023 		CAIN C,.CMTOK		;AN ATSIGN?
BJRSTATSIGNC	001463'	254 00 0 00 001466'		JRST ATSIGN		;YES, GO GOBBLE INDIRECT FILE
BREADY5CALLREADY4C	001464'	260 17 0 00 001565'	READY5:	CALL READY4		;GO ALIGN THE FILE
BJRSTREADYC	001465'	254 00 0 00 001576'		JRST READY		;AND GO DO IT
BC
BATSIGNCALLGETFILC	001466'	260 17 0 00 001526'	ATSIGN:	CALL GETFIL		;READ MESSAGE FROM FILE INTO BUFFER
BJRSTONEMORC	001467'	254 00 0 00 001453'		 JRST ONEMOR		;GIVE USER ONE MORE CHANCE
BJRSTREADY5C	001470'	254 00 0 00 001464'		JRST READY5		;FINISH AS THOUGH MESSAGE WERE TYPED
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 5
MAIL	MAC	11-Jul-84 20:00	

BC
BC
BC					;
BC					;DOUSR - Take a list of User numbers whose address is in D, and convert them
BC					;	 to User names, separated by Commas and CRLF's where needed, in the
BC					;	 message text pointed to by A.
BC					;
BDOUSRSTKVAR..STKRRADIX..STKNIRPIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFSAV.IFDEFINESAVZSAVP$SAVJSP.A16.STKSTC	001471'	265 16 0 00 001237*	DOUSR:	STKVAR	<SAV>		;Temporary storage
B..STKN..STKN..STKNC	001472'	000001	000001
BRADIX..STKRDEFINEENDSV.MOVEIWC	001473'	201 05 0 00 000000 		MOVEI W,0		;WORK
BMOVEICC	001474'	201 03 0 00 000054 		MOVEI C,","		;FOR CONVENIENCE
BTOPOFSKIPNBDC	001475'	336 02 0 04 000000 	TOPOF:	SKIPN B,(D)		;WORK TO DO?
BRETC	001476'	263 17 0 00 000000 		 RET			;NO. GO BACK
BSKIPEWC	001477'	332 00 0 00 000005 		SKIPE W			;NEED A COMMA?
BIDPBCAC	001500'	136 03 0 00 000001 		IDPB C,A		;YES. PUT IT IN
BCAMNBSYSCODSYSCODC	001501'	316 02 0 00 002155'		CAMN B,[SYSCOD]		;IS THIS SYSTEM?
BJRSTSPCUSRC	001502'	254 00 0 00 001520'		JRST SPCUSR		;YES. GO DO IT
BMOVEMASAVPC	001503'	202 01 0 17 777776 		MOVEM A,SAV		;Save byte pointer in case DIRST fails
BDIRSTC	001504'	104 00 0 00 000041 		DIRST			;CONVERT TO A STRING
BAOSDC	001505'	350 00 0 00 000004 		 AOS D			;Won't convert, so skip it.
BTOPOF1AOSWC	001506'	350 00 0 00 000005 	TOPOF1:	AOS W
BADDIDC	001507'	271 04 0 00 000001 		ADDI D,1		;NEXT ONE
BCAIGEWC	001510'	305 05 0 00 000007 		CAIGE W,7		;MOR ON THIS LINE?
BJRSTTOPOFC	001511'	254 00 0 00 001475'		JRST TOPOF		;YES
BHRROIBASCIZC						HRROI B,[ASCIZ /,
BC	001512'	561 02 0 00 002336'	    /]
BSETZCC	001513'	400 03 0 00 000000 		SETZ C,			; STOP ON NULL
BSKIPEDC	001514'	332 00 0 04 000000 		SKIPE (D)		; only do this if usernames still left
BSOUTC	001515'	104 00 0 00 000053 		SOUT
BJERRERJMPCALLJSERR0TMSGHRROI.AC1ASCIZPSOUTJRSTC	001516'	320 16 0 00 002350'		 JERR <MAIL SOUT% ERROR IN TOPOF1 ROUTINE>
BJRSTDOUSRC	001517'	254 00 0 00 001471'		JRST DOUSR
BC
BC					;SPECIAL USER CODE FOUND
BC
BSPCUSRHRROIBASCIZC	001520'	561 02 0 00 002072'	SPCUSR:	HRROI B,[ASCIZ /SYSTEM/] ;YES. GET THE NAME
BSETZCC	001521'	400 03 0 00 000000 		SETZ C,
BSOUTC	001522'	104 00 0 00 000053 		SOUT			;PUT IT IN
BJERRERJMPCALLJSERR0TMSGHRROI.AC1ASCIZPSOUTJRSTC	001523'	320 16 0 00 002364'		 JERR <MAIL SOUT% ERROR IN SPCUSR ROUTINE>
BMOVEICC	001524'	201 03 0 00 000054 		MOVEI C,","		;PUT BACK THE PUNCTUATION
BJRSTTOPOF1C	001525'	254 00 0 00 001506'		JRST TOPOF1		;AND GO BACK IN
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 6
MAIL	MAC	11-Jul-84 20:00	

BC
BC
BGETFILSTKVAR..STKRRADIX..STKNIRPIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFFJFN.IFDEFINEFJFNZFJFNP$FJFNIFB..STKN..STKNIFNB..STKN..STKQ..STKQIFDEFFPTR.IFDEFINEFPTRZFPTRP$FPTRJSP.A16.STKSTC	001526'	265 16 0 00 001471*	GETFIL:	STKVAR <FJFN,FPTR>
B..STKN..STKN..STKNC	001527'	000002	000002
BRADIX..STKRDEFINEENDSV.MOVNIAC	001530'	211 01 0 00 000001 		MOVNI A,1		;WE WANT CONTENTS TO OVERWRITE "@"
BADJBPASBK.CMPTRC	001531'	133 01 0 00 000326'		ADJBP A,SBK+.CMPTR	;GET POINTER TO WHERE FILE CONTENTS GOES
BMOVEMAFPTRPC	001532'	202 01 0 17 777775 		MOVEM A,FPTR		;REMEMBER
BMOVEIAFLDDB.FLD.CMIFICM%FNCCM%FNCCM%FNCCM%SDH..XXIFNBCM%HPP..XX..XXIFNB..XX..XXIFNBIFBIFNBPOINTASCIZIFBIFNBC	001533'	201 01 0 00 002375'		MOVEI A,[FLDDB. .CMIFI,CM%SDH,,<Name of message file>]
BCALLCFIELDC	001534'	260 17 0 00 001436*		CALL CFIELD		;GET FILESPEC
BMOVEMBFJFNPC	001535'	202 02 0 17 777776 		MOVEM B,FJFN		;SAVE JFN
BMOVEABC	001536'	200 01 0 00 000002 		MOVE A,B		;JFN IN A
BMOVEBC	001537'	200 02 0 00 002400'		MOVE B,[070000,,200000]
BOPENFC	001540'	104 00 0 00 000021 		OPENF
BJRSTMOVEAFJFNPC						 JRST [	MOVE A,FJFN
BRLJFNC							RLJFN
BJFCLC							 JFCL
BJRSTNOFILC	001541'	254 00 0 00 002401'			JRST NOFIL]	;COULDNT GET IT
BMOVNIBC	001542'	211 02 0 00 000001 		MOVNI B,1		;SET FILE POINTER TO EOF
BSFPTRC	001543'	104 00 0 00 000027 		SFPTR			;DO IT
BJFCLC	001544'	255 00 0 00 000000 		 JFCL			;IT BETTER DO IT!
BRFPTRC	001545'	104 00 0 00 000043 		RFPTR			;NOW SEE WHAT THE BYTE VALUE IS
BJFCLC	001546'	255 00 0 00 000000 		 JFCL			;AGAIN, NO QUARTER FOR SLAGGARDS
BMOVNCBC	001547'	210 03 0 00 000002 		MOVN C,B		;GET NEGATIVE OF BYTE COUNT
BSETZBC	001550'	400 02 0 00 000000 		SETZ B,			;GET IT BACK TO THE BEGINNING
BSFPTRC	001551'	104 00 0 00 000027 		SFPTR			;AT LAST. WHAT A HACK.
BJFCLC	001552'	255 00 0 00 000000 		 JFCL
BMOVEBFPTRPC	001553'	200 02 0 17 777775 		MOVE B,FPTR		;GET PLACE TO PUT FILE
BSINC	001554'	104 00 0 00 000052 		SIN			;RAED IN WHOLE FILE
BMOVEMBSBK.CMPTRC	001555'	202 02 0 00 000326'		MOVEM B,SBK+.CMPTR	;SAVE UPDATED POINTER
BCLOSFC	001556'	104 00 0 00 000022 		CLOSF			;CLOSE THE FILE
BJFCLC	001557'	255 00 0 00 000000 		 JFCL
BRETSKPJRSTRSKPC	001560'	254 00 0 00 000000*		RETSKP			;GIVE SKIP RETURN FOR SUCCESS
BC
BNOFILHRROIAASCIZC	001561'				NOFIL:	HRROI A,[ASCIZ /
BC					?Could not find file
BC	001561'	561 01 0 00 002405'	/]
BPSOUTC	001562'	104 00 0 00 000076 		PSOUT
BJSERRJSERRC	001563'	000000000000#			JSERR			;SAY WHY NOT
BPOPJPC	001564'	263 17 0 00 000000 		POPJ P,			;RETURN BAD
BC
BC					;ALIGN THE END-OF-MESSAGE
BC
BREADY4LDBASBK.CMPTRC	001565'	135 01 0 00 000326'	READY4:	LDB A,SBK+.CMPTR	;GET TERMINATOR
BCAIEA.CHLFDC	001566'	302 01 0 00 000012 		CAIE A,.CHLFD		;A LINE-FEED?
BJRSTHRROIAASCIZC						JRST [	HRROI A,[ASCIZ /
BC					/]
BSETZMCC							SETZM C
BMOVEBSBK.CMPTRC							MOVE B,SBK+.CMPTR
BSINC							SIN
BMOVEMBSBK.CMPTRC							MOVEM B,SBK+.CMPTR
BJRSTC	001567'	254 00 0 00 002412'			JRST .+1]
BMOVEIAC	001570'	201 01 0 00 000000 		MOVEI A,0
BREADY2MOVEBSBK.CMPTRC	001571'	200 02 0 00 000326'	READY2:	MOVE B,SBK+.CMPTR
BTLNNBC	001572'	607 02 0 00 700000 		TLNN B,700000		;AT THE END OF A WORD?
BRETC	001573'	263 17 0 00 000000 		RET			;DONE
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 6-1
MAIL	MAC	11-Jul-84 20:00	

BIDPBASBK.CMPTRC	001574'	136 01 0 00 000326'		IDPB A,SBK+.CMPTR	;NO. PAD
BJRSTREADY2C	001575'	254 00 0 00 001571'		JRST READY2		;GO TEST SOME MORE
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 7
MAIL	MAC	11-Jul-84 20:00	

BC
BC
BC					;MESSAGE IS IN BIGBUF. NOW SEND IT
BC
BREADYMOVXGJ%OLDGJ%SHT..MX1.IFN.IF..MX2IFE..MX1IFE..MX2IFE..MX1..MX2MOVSIA..MX1C	001576'	205 01 0 00 100001 	READY:	MOVX A,GJ%OLD!GJ%SHT
BIFE..MX2IFE..MX2IFE..MX2HRROIBASCIZC	001577'	561 02 0 00 002420'		HRROI B,[ASCIZ /MAIL-SALUTATION:/]
BGTJFNC	001600'	104 00 0 00 000020 		GTJFN			;HAVE AN APPEND FILE?
BJRSTRDYYC	001601'	254 00 0 00 001614'		 JRST RDYY		;NO. PROCEED
BMOVXOF%RD..MX1.IFN.IF..MX2IFE..MX1IFE..MX2IFE..MX1IFE..MX2IFE..MX1IFE..MX2IFE..MX1IFE..MX2MOVEB..MX1..MX1C	001602'	200 02 0 00 002400'		MOVX B,<07B5+OF%RD>	;OPEN IT UP
BOPENFC	001603'	104 00 0 00 000021 		OPENF			;""
BJRSTRDYYC	001604'	254 00 0 00 001614'		 JRST RDYY		;COULDN'T.
BMOVEBSBK.CMPTRC	001605'	200 02 0 00 000326'		MOVE B,SBK+.CMPTR	;GET POINTER TO MESSAGE END SO FAR
BSETZMCC	001606'	402 00 0 00 000003 		SETZM C			;GET ALL OF THE FILE
BSINC	001607'	104 00 0 00 000052 		SIN			;DO IT
BMOVEMBSBK.CMPTRC	001610'	202 02 0 00 000326'		MOVEM B,SBK+.CMPTR	;UPDATE END OF MESSAGE POINTER
BCLOSFC	001611'	104 00 0 00 000022 		CLOSF			;DONE WITH THE FILE
BJFCLC	001612'	255 00 0 00 000000 		 JFCL
BCALLREADY4C	001613'	260 17 0 00 001565'		CALL READY4		;ALIGN IT
BRDYYMOVEBSBK.CMPTRC	001614'	200 02 0 00 000326'	RDYY:	MOVE B,SBK+.CMPTR	;GET POINTER TO END OF MESSAGE
BSUBIBBIGBUFC	001615'	275 02 0 00 100000 		SUBI B,BIGBUF		;BEGINNING OF MESSAGE
BMOVNICBC	001616'	211 03 0 02 000001 		MOVNI C,1(B)		;COUNT OF WORDS TO MOVE
BMOVEBPOINTBIGBUFC	001617'	200 02 0 00 002424'		MOVE B,[POINT ^D36,BIGBUF] ;WRITE BY WORDS
BMOVEACPYJFNC	001620'	200 01 0 00 000602'		MOVE A,CPYJFN		;THE FILE TO PUT IT IN
BSOUTC	001621'	104 00 0 00 000053 		SOUT			;WRITE THE FILE
BTLOAC	001622'	661 01 0 00 400000 		TLO A,(1B0)
BCLOSFC	001623'	104 00 0 00 000022 		CLOSF			;CLOSE THE FILE TO PRESERVE IT
BJFCLC	001624'	255 00 0 00 000000 		 JFCL
BMOVEBAC	001625'	200 02 0 00 000001 		MOVE B,A		;JFN IN B
BC
BC					;NOW SEND IPCF MESSAGE TO MAILER
BC
BC					;GET PID OF MAILER
BC
BRDYNPUSHPBC	001626'	261 17 0 00 000002 	RDYN:	PUSH P,B		;SAVE JFN
BSETZW1C	001627'	400 06 0 00 000000 		SETZ W1,		;RETRY FLAG
BMOVSIAIP%CPDC	001630'	205 01 0 00 010000 		MOVSI A,(IP%CPD)	;CREATE PID
BMOVEMAPIDGETC	001631'	202 01 0 00 000571'		MOVEM A,PIDGET		;REQUEST THIS FUNCTION
BMALERSETZMPIDGETC	001632'	402 00 0 00 000572'	MALER:	SETZM PIDGET+1		;NO SENDER'S PID
BRDYN1MOVEIBPIDGETC	001633'	201 02 0 00 000571'	RDYN1:	MOVEI B,PIDGET		;GET MAILER'S PID
BSETZMPIDGETC	001634'	402 00 0 00 000573'		SETZM PIDGET+2		;NO RECEIVER'S PID
BMOVEIAC	001635'	201 01 0 00 000004 		MOVEI A,4		;THE COUNT
BMSENDC	001636'	104 00 0 00 000510 		MSEND
BJRSTSKIPNW1C						 JRST [	SKIPN W1	;FIRST TRY?
BPUSHJPMOVEIAC							PUSHJ P,[MOVEI A,101 ;YES. PRINT SOME STUFF
BMOVEBC								MOVE B,[400000,,-1] ;LAST ERROR
BSETZCC								SETZ C, ;NO FLAGS
BERSTRC								ERSTR	;TELL HIM
BJFCLC								 JFCL
BJFCLC								 JFCL
BHRROIAASCIZC								HRROI A,[ASCIZ /  Waiting...
BC					/]
BPSOUTC								PSOUT	;TELL HIM WE ARE STILL HANGING IN THERE
BPOPJPC								POPJ P,] ;GO BACK IN LINE
BAOSW1C							AOS W1		;COUNT TRIES
BMOVEIAC							MOVEI A,^D500	;SLEEP TIME
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 7-1
MAIL	MAC	11-Jul-84 20:00	

BDISMSC							DISMS
BJRSTMALERC	001637'	254 00 0 00 002442'			JRST MALER]	;GO TRY IT AGAIN
BMOVSIBIP%CPDC	001640'	205 02 0 00 010000 		MOVSI B,(IP%CPD)	;CREATE PID BIT
BANDCAMBPIDGETC	001641'	412 02 0 00 000571'		ANDCAM B,PIDGET		;NOW HAVE A PID
BGETAGNSETZBWW1C	001642'	403 05 0 00 000006 	GETAGN:	SETZB W,W1		;NO FLAGS,NO SENDER
BMOVEW2PIDGETC	001643'	200 07 0 00 000572'		MOVE W2,PIDGET+1	;MY TEMP ID
BMOVEW3BIGBUFC	001644'	200 10 0 00 002450'		MOVE W3,[10,,BIGBUF]	;USE BUFFER
BMOVEIBWC	001645'	201 02 0 00 000005 		MOVEI B,W		;WHERE RECIVE WILL BE
BMRECVC	001646'	104 00 0 00 000511 		MRECV			;GET IT PLEASE
BJFCLC	001647'	255 00 0 00 000000 		 JFCL			;HOW CAN THIS HAPPEN PMH?
BMOVEW1WC	001650'	200 06 0 00 000005 		MOVE W1,W		;SAVE HEADER
BANDIWC	001651'	405 05 0 00 000070 		ANDI W,7B32		;ISOLATE FILED
BCAIEWC	001652'	302 05 0 00 000010 		CAIE W,1B32		;SENT BY MONITOR?
BCAINWC	001653'	306 05 0 00 000020 		CAIN W,2B32		;SENT BY INFO?
BSKIPAC	001654'	334 00 0 00 000000 		SKIPA
BJRSTGETAGNC	001655'	254 00 0 00 001642'		JRST GETAGN		;NO GET IT AGAIN
BTRNEW1C	001656'	602 06 0 00 000007 		TRNE W1,7		;WAS THE PACKET UNDELIVERABLE?
BJRSTRDYN1C	001657'	254 00 0 00 001633'		JRST RDYN1		;YES. SO SEND IT AGAIN
BANDIW1C	001660'	405 06 0 00 007700 		ANDI W1,77B29		;ISOLATE THE ERROR FIELD
BJUMPEW1GETAS1C	001661'	322 06 0 00 001667'		JUMPE W1,GETAS1		;GOT IT.
BCAINW1.IPCSNC	001662'	306 06 0 00 006700 		CAIN W1,<.IPCSN>B29	;DID INFO CRASH AND RESTART?
BJRSTGETAGNC	001663'	254 00 0 00 001642'		JRST GETAGN		;YES. WAIT FOR SOME OTHER NEWS THEN
BHRROIAASCIZC						HRROI A,[ASCIZ /
BC					?Could not send to MAILER
BC	001664'	561 01 0 00 002451'	/]
BPSOUTC	001665'	104 00 0 00 000076 		PSOUT
BHALTFC	001666'	104 00 0 00 000170 		HALTF			;GIVE UP
BGETAS1MOVEW2BIGBUFC	001667'	200 07 0 00 100001 	GETAS1:	MOVE W2,BIGBUF+1	;SAVE MAILER'S PID
BMOVEMW2PIDGETC	001670'	202 07 0 00 000573'		MOVEM W2,PIDGET+2	;FOR LATER
BSETZMBIGBUFC	001671'	402 00 0 00 100000 		SETZM BIGBUF		;TO GET FILE NAME
BPOPPBC	001672'	262 17 0 00 000002 		POP P,B
BHRRZSBC	001673'	553 00 0 00 000002 		HRRZS B			;JFN
BHRROIABIGBUFC	001674'	561 01 0 00 100001 		HRROI A,BIGBUF+1	;WHERE NAME IS GOING
BMOVECC	001675'	200 03 0 00 002457'		MOVE C,[1B2!1B5!1B8!1B11!1B14+1] ;GET FULL NAME
BJFNSC	001676'	104 00 0 00 000030 		JFNS			;GET THE NAME
BSETZCC	001677'	400 03 0 00 000000 		SETZ C,
BIDPBCAC	001700'	136 03 0 00 000001 		IDPB C,A		;TIE IT OFF
BMOVEIW3AC	001701'	201 10 0 01 000000 		MOVEI W3,(A)
BSUBIW3BIGBUFC	001702'	275 10 0 00 100000 		SUBI W3,BIGBUF		;SIZE OF STRING
BHRLZSW3C	001703'	517 00 0 00 000010 		HRLZS W3		;TO THE LEFT HALF
BHRRIW3BIGBUFC	001704'	541 10 0 00 100001 		HRRI W3,BIGBUF+1	;WHERE IT IS
BSETZWC	001705'	400 05 0 00 000000 		SETZ W,			;NO BITS
BMOVEW1PIDGETC	001706'	200 06 0 00 000572'		MOVE W1,PIDGET+1	;WHERE INFO PUT IT
BSENDITMOVEIAC	001707'	201 01 0 00 000004 	SENDIT:	MOVEI A,4
BMOVEIBWC	001710'	201 02 0 00 000005 		MOVEI B,W		;FOR MAILER
BMSENDC	001711'	104 00 0 00 000510 		MSEND			;SEND IT OFF
BJRSTMOVEIAC						 JRST [	MOVEI A,^D500	;SLEEP FOR A WHILE
BDISMSC							DISMS
BJRSTSENDITC	001712'	254 00 0 00 002460'			JRST SENDIT]	;TRY AGAIN
BHRROIAASCIZC						HRROI	A,[ASCIZ /
BC	001713'	561 01 0 00 002463'	Processing mail.../]
BPSOUTC	001714'	104 00 0 00 000076 		PSOUT
BAGAINMOVEIAC	001715'	201 01 0 00 000004 	AGAIN:	MOVEI A,4
BMOVEIBWC	001716'	201 02 0 00 000005 		MOVEI B,W		;SET UP FOR MAILER'S REPLY
BSETZBWW1C	001717'	403 05 0 00 000006 		SETZB W,W1
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 7-2
MAIL	MAC	11-Jul-84 20:00	

BMOVEW2PIDGETC	001720'	200 07 0 00 000572'		MOVE W2,PIDGET+1	;MY PID
BMOVEW3BIGBUFC	001721'	200 10 0 00 002470'		MOVE W3,[1000,,BIGBUF+1000] ;MESSAGE SPACE
BMRECVC	001722'	104 00 0 00 000511 		MRECV			;GET IT
BJFCLC	001723'	255 00 0 00 000000 		 JFCL			;?????
BTRNNWC	001724'	606 05 0 00 000070 		TRNN W,7B32		;FROM INFO OR THE MONITIOR?
BJRSTOKC	001725'	254 00 0 00 001736'		JRST OK			;NO. MUST BE FROM AMILER
BMOVEBWC	001726'	200 02 0 00 000005 		MOVE B,W		;THE HEADER
BANDIBC	001727'	405 02 0 00 000070 		ANDI B,7B32		;SEE WHO IT IS
BCAIEBC	001730'	302 02 0 00 000020 		CAIE B,2B32		;FROM INFO?
BCAINBC	001731'	306 02 0 00 000030 		CAIN B,3B32		;OR PRIVATE INFO?
BJRSTAGAINC	001732'	254 00 0 00 001715'		JRST AGAIN		;YES. GET ANOTHER MESSAGE
BHRROIAASCIZC						HRROI A,[ASCIZ /
BC					?MAILER is not running. Messages not sent.
BC	001733'	561 01 0 00 002471'	/]
BPSOUTC	001734'	104 00 0 00 000076 		PSOUT			;WAS FROM MONITOR
BHALTFC	001735'	104 00 0 00 000170 		HALTF
BOKCAMEW1PIDGETC	001736'	312 06 0 00 000573'	OK:	CAME W1,PIDGET+2	;FROM MAILER?
BJRSTAGAINC	001737'	254 00 0 00 001715'		JRST AGAIN		;NO. OGNOTR IT
BTRNEWC	001740'	602 05 0 00 007700 		TRNE W,77B29		;ANY ERRORS?
BJRSTERRORSC	001741'	254 00 0 00 001745'		JRST ERRORS		;YES. GO ANALYZE THEM
BHRROIAASCIZC						HRROI A,[ASCIZ /
BC					No errors.
BC					-DONE-
BC	001742'	561 01 0 00 002503'	/]
BPSOUTC	001743'	104 00 0 00 000076 		PSOUT
BHALTFC	001744'	104 00 0 00 000170 		HALTF
BERRORSANDIWC	001745'	405 05 0 00 007700 	ERRORS:	ANDI W,77B29
BCAIEWNACK1C	001746'	302 05 0 00 000200 		CAIE W,<NACK1>B29	;TOTAL WIPEOUT?
BJRSTSOMEC	001747'	254 00 0 00 001753'		JRST SOME		;NO. PRINT ERRORS
BHRROIAASCIZC						HRROI A,[ASCIZ /
BC					?Processing errors occurred. No mail sent.
BC	001750'	561 01 0 00 002510'	/]
BPSOUTC	001751'	104 00 0 00 000076 		PSOUT			;YES. COULDNT DO IT
BHALTFC	001752'	104 00 0 00 000170 		HALTF
BSOMEHLRZSW3C	001753'	557 00 0 00 000010 	SOME:	HLRZS W3		;GET COUNT
BIMULW3C	001754'	220 10 0 00 002522'		IMUL W3,[-1,,0]
BHRRIW3BIGBUFC	001755'	541 10 0 00 101000 		HRRI W3,BIGBUF+1000	;BUFFER
BSOME1MOVEBW3C	001756'	200 02 0 10 000001 	SOME1:	MOVE B,1(W3)		;BAD GUY
BCAMNBSYSCODSYSCODC	001757'	316 02 0 00 002155'		CAMN B,[SYSCOD]		;IS THIS SYSTEM?
BJRSTHRROIAASCIZC						JRST [	HRROI A,[ASCIZ /SYSTEM/]
BPSOUTC							PSOUT
BJRSTSOME2C	001760'	254 00 0 00 002523'			JRST SOME2]
BMOVEIA.PRIOUC	001761'	201 01 0 00 000101 		MOVEI A,.PRIOU
BDIRSTC	001762'	104 00 0 00 000041 		DIRST			;PRINT HIS ID
BJFCLC	001763'	255 00 0 00 000000 		 JFCL
BSOME2HRROIAASCIZC	001764'	561 01 0 00 002526'	SOME2:	HRROI A,[ASCIZ /  not sent /]
BPSOUTC	001765'	104 00 0 00 000076 		PSOUT
BHLRZBW3C	001766'	554 02 0 10 000000 		HLRZ B,0(W3)		;GET MACRO CODE
BCAINBNOACKBC	001767'	306 02 0 00 000000 		CAIN B,NOACKB		;DEFAULT ERROR CONDITION?
BJRSTHRRZBW3C						JRST [	HRRZ B,0(W3)	;YES. GET MONITOR CODE
BJUMPEBNSTRNGC							JUMPE B,NSTRNG	;IF ZERO, NO MORE INFORMATION
BHRLIB.FHSLFC							HRLI B,.FHSLF
BHRROIAASCIZC							HRROI A,[ASCIZ /BECAUSE:
BC					/]
BPSOUTC							PSOUT
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 7-3
MAIL	MAC	11-Jul-84 20:00	

BMOVEIA.PRIOUC							MOVEI A,.PRIOU	;OUTPUT REASON
BSETZCC							SETZ C,
BERSTRC							ERSTR		;PRODUCE MONITOR ERROR
BJFCLC							 JFCL
BJFCLC							 JFCL
BJRSTNSTRNGC	001770'	254 00 0 00 002534'			JRST NSTRNG]	;AND DONE
BCAILBMINMSGC	001771'	301 02 0 00 000001 		CAIL B,MINMSG		;HAVE A STRING FOR THIS?
BCAILBMAXMSGC	001772'	301 02 0 00 000002 		CAIL B,MAXMSG		;STILL?
BJRSTNSTRNGC	001773'	254 00 0 00 001776'		JRST NSTRNG		;NO. GO ON
BHRROAMSGTBLMINMSGBC	001774'	560 01 0 02 000567'		HRRO A,MSGTBL-MINMSG(B)	;YES. GET THE STRING
BPSOUTC	001775'	104 00 0 00 000076 		PSOUT			;AND PRINT IT
BNSTRNGHRROIAASCIZC	001776'				NSTRNG:	HRROI A,[ASCIZ /
BC	001776'	561 01 0 00 002207'	/]
BPSOUTC	001777'	104 00 0 00 000076 		PSOUT			;CLEAN UP THE LINE
BAOBJNW3C	002000'	253 10 0 00 002001'		AOBJN W3,.+1		;ADVANCE TWICE
BAOBJNW3SOME1C	002001'	253 10 0 00 001756'		AOBJN W3,SOME1		;DO ALL BADDIES
BHRROIAASCIZC						HRROI A,[ASCIZ /
BC
BC					-Done-
BC	002002'	561 01 0 00 002547'	/]
BPSOUTC	002003'	104 00 0 00 000076 		PSOUT			;TELL HIM IT'S OVER
BHALTFC	002004'	104 00 0 00 000170 		HALTF
BCANTRESETC	002005'	104 00 0 00 000147 	CANT:	RESET			;CLEAN UP
BHRROIAASCIZC						HRROI A,[ASCIZ /
BC					?MAIL.CPY Failure
BC	002006'	561 01 0 00 002552'	/]
BPSOUTC	002007'	104 00 0 00 000076 		PSOUT
BMOVEIAC	002010'	201 01 0 00 000101 		MOVEI A,101
BMOVEBC	002011'	200 02 0 00 002425'		MOVE B,[400000,,-1]
BSETZCC	002012'	400 03 0 00 000000 		SETZ C,
BERSTRC	002013'	104 00 0 00 000011 		ERSTR			;LET MONITOR TELL HIM WHAT
BJFCLC	002014'	255 00 0 00 000000 		 JFCL
BJFCLC	002015'	255 00 0 00 000000 		 JFCL
BHALTFC	002016'	104 00 0 00 000170 		HALTF
BJRSTC	002017'	254 00 0 00 002016'		JRST .-1		;DON'T CONTINUE
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page 8
MAIL	MAC	11-Jul-84 20:00	

BC
BC					;THIS CODE IS GOTTEN TO BY THE REENTER COMMAND. IT IS USED
BC					;EXCLUSIVELY TO TRY TO SEND A MESSAGE.COPY FILE WHICH ALREADY EXISTS
BC					;BUT WHICH COULD NOT BE SENT PREVIOUSLY.
BRETRYRESETC	002020'	104 00 0 00 000147 	RETRY:	RESET			;CLEAR CONTEXT
BMOVEPIOWDPDSLPDLC	002021'	200 17 0 00 002034'		MOVE P,[IOWD PDSL,PDL]	;STACK
BCALLCMDINIC	002022'	260 17 0 00 001163*		CALL CMDINI		;INITIALIZE FOR COMND JSYS
BPROMPTHRROIAASCIZC	002023'	561 01 0 00 002557'		PROMPT <File name of message file:>
BCALLDPROMPC	002024'	260 17 0 00 001456*
BMOVEIAFLDDB.FLD.CMIFICM%FNCCM%FNCCM%FNC..XXIFNBIFNB..XX..XXIFNBIFBIFNBIFBIFNBIFNBC	002025'	201 01 0 00 002565'		MOVEI A,[FLDDB. .CMIFI]
BCALLCFIELDC	002026'	260 17 0 00 001534*		CALL CFIELD		;READ NAME OF MESSAGE FILE
BJRSTRDYNC	002027'	254 00 0 00 001626'		JRST RDYN		;ALL SET
BENDENTVECC		000003	001156'			END <3,,ENTVEC>		;ESTABLISH THE ENTRY VECTOR
VI%DEC	UNASSIGNED, DEFINED AS IF EXTERNAL

?1 ERROR DETECTED

PROGRAM BREAK IS 002567
CPU TIME USED 00:04.015

85P CORE USED
MAIL	MACRO %53A(1152) 11:25  5-Aug-85 Page S-1
MAIL	MAC	11-Jul-84 20:00		SYMBOL TABLE

A		000001	spd	GJ%OLD	100000	000000	sin	RDYY		001614'		$TWOFL	000017	777770	spd	
AGAIN		001715'		GJ%SHT	000001	000000	sin	READY		001576'		..MX1	070000	200000	spd	
ATMBLN		000141	sin	GJINF	104000	000013	int	READY2		001571'		..MX2		000000	spd	
ATMBUF		000161'	int	GTJFN	104000	000020	int	READY4		001565'		..STKN		000002	spd	
ATSIGN		001466'		HALTF	104000	000170	int	READY5		001464'		..STKQ		000003	spd	
B		000002	spd	HOLD		162000		REAL		001237'		..STKR		000010	spd	
BIGBUF		100000		IOK		001316'		REPARA		000362'	int	..XX	004000	000000	spd	
BUSYCT		000603'		IP%CPD	010000	000000	sin	RESET	104000	000147	int	.A16		000016	spd	
C		000003	spd	JFNS	104000	000030	int	RET	263740	000000		.AC1		000001	spd	
CALL	260740	000000		JSERR	000000000000#	pol	RETRY		002020'		.CHLFD		000012	sin	
CANT		002005'		JSERR0		002364'	ext	RFIELD		001460'	ext	.CMBFP		000003	sin	
CFIELD		002026'	ext	LOOP		001245'		RFLDE		001266'	ext	.CMCFM		000010	sin	
CJFNBK		000342'	int	MALER		001632'		RFPTR	104000	000043	int	.CMCMA		000013	sin	
CJFNLN		000020	sin	MAXMSG		000002	spd	RLJFN	104000	000023	int	.CMCNT		000005	sin	
CLEN1		001353'		MINMSG		000001	spd	RSKP		001560'	ext	.CMFLG		000000	sin	
CLEN2		001364'		MLUP		001302'		S.BLA		000010	spd	.CMIFI		000004	sin	
CLEN3		001362'		MLUP1		001307'		S.END		000002	spd	.CMKEY		000000	sin	
CLENUP		001351'		MRECV	104000	000511	int	S.ERR		000020	spd	.CMPTR		000004	sin	
CLOSF	104000	000022	int	MSEND	104000	000510	int	S.PRF		000001	spd	.CMTOK		000023	sin	
CM%FNC	777000	000000	sin	MSGTBL		000570'		S.SAW		000004	spd	.CMTXT		000017	sin	
CM%HPP	000004	000000	sin	MYUSER		000604'		SAVCNT		000567'		.CMUQS		000022	sin	
CM%SDH	000001	000000	sin	NACK1		000002	spd	SAVW		000565'		.CMUSR		000012	sin	
CM%WKF	001000	000000	sin	NACK2		000003	spd	SBK		000322'	int	.FHSLF		400000	sin	
CM%XIF	002000	000000	sin	NAMER		001320'		SENDIT		001707'		.IPCSN		000067	sin	
CMDACS		000141'	int	NOACKB		000000	spd	SFPTR	104000	000027	int	.PRIOU		000101	sin	
CMDBLN		000141	sin	NOFIL		001561'		SIN	104000	000052	int	.STKST		001526'	ext	
CMDBUF		000000'	int	NSTRNG		001776'		SIZE		062000	spd	
CMDER1		001334'	ext	ODTIM%	104000	000220	int	SOME		001753'		
CMDFRM		000363'	int	OF%RD		200000	sin	SOME1		001756'		
CMDINI		002022'	ext	OF%WR		100000	sin	SOME2		001764'		
CMDPDL		000364'	int	OK		001736'		SOUT	104000	000053	int	
CMDPLN		000200	sin	ONEMOR		001453'		SOUT%	104000	000053	int	
CPYJFN		000602'		OPENF	104000	000021	int	SPCUSR		001520'		
CURR		001115'		OPNLOP		001204'		SPTR		000564'		
D		000004	spd	OPNX9		600130	sin	START		001161'		
DATA		262000	spd	OT%4YR	010000	000000	sin	SYSCOD	777777	777776	spd	
DIRST	104000	000041	int	OT%NCO	000040	000000	sin	TOPOF		001475'		
DIRST%	104000	000041	int	OT%NSC	000200	000000	sin	TOPOF1		001506'		
DIRSTR		001116'		OT%SCL	000001	000000	sin	USERS		000144	spd	
DISMS	104000	000167	int	OT%SPA	002000	000000	sin	USRBLK		100001		
DOSTUF		001371'		OT%TMZ	000020	000000	sin	VI%DEC		000000	udf	
DOUSR		001471'		P		000017	spd	W		000005	spd	
DPROMP		002024'	ext	PARTRM		000566'		W1		000006	spd	
ENDMSG		000602'		PDL		000605'		W2		000007	spd	
ENTVEC		001156'		PDSL		000310	spd	W3		000010	spd	
ERJMP	320700	000000	int	PIDGET		000571'		$COMFL	000017	777767	spd	
ERRORS		001745'		PRGCST		000000	spd	$FJFN	000017	777776	spd	
ERSTR	104000	000011	int	PRGEDT	000000000000#	pol	$FPTR	000017	777775	spd	
ESOUT	104000	000313	int	PRGMIN		000000	spd	$ITEM	000017	777771	spd	
F		000000	spd	PRGVER		000005	spd	$LLEN	000017	777776	spd	
FINNAM		001277'		PSOUT	104000	000076	int	$LLEN2	000017	777775	spd	
GETAGN		001642'		PURGE		001335'		$MPTR	000017	777774	spd	
GETAS1		001667'		R00		001273'		$PPTR	000017	777773	spd	
GETFIL		001526'		RDYN		001626'		$SAV	000017	777776	spd	
GJ%FOU	400000	000000	sin	RDYN1		001633'		$SELF	000017	777772	spd