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