15 22FL #SEG BEXTRA6 [M.B.KINGHAM 11 22_= #OPT K0BEXTRA=K0OLP>K0BUDGES 8 23DW #OPT K6BEXTRA=K6OLP 7 23YG #LIS K0BEXTRA 9 24D6 8HBEXTRA 12 24XQ SEGENTRY K1BEXTRA,QK1BEXTRA 12 25CB SEGENTRY K5BEXTRA,QK5BEXTRA 4 25X2 # 16 26BL # 1 THIS CHAPTER PROCESSES THE BUDGET EXTRACODES 20 26W= # THESE EXTRACODES ARE ALL OBEYED IN AN OFF-LINE PERI ACTIVITY 14 27*W # WHICH HAS BEEN SET UP BY THE COMMAND 13 27TG # ^ASSIGN *CI0,:MASTER.DICTIONARY^ 19 28*6 # THE ASSUMPTION IS MADE BY ALL THESE ROUTINES THAT THE FILE 20 28SQ # WHICH IS OPEN IS THE DICTIONARY,AND THAT IT IS A VALID ONE. 9 29#B ZUP 8H*UPDATE 8 29S2 NAMEB +10 9 2=?L 12HMASTER 10 2=R= 12HDICTIONARY 8 2?=W +0 8 2?QG +1 8 2#=6 +0 8 2#PQ XILL PAIR BEXTRA,5 8 2*9B PAIR BEXTRA,1 9 2*P2 ZILLINS +JYILLINS 9 2B8L ZRESVIOL +JYRESVIOL 9 2BN= ZMODE +JYMODE 7 2C7W NOCHEK +5 16 2CMG [ IN AWORK1 THE FOLLOWING BITS ARE SIGNIFICANT 18 2D76 #DEF ZENTRY=1 [ =0 UNLESS AN ENTRY IS OPEN 20 2DLQ #DEF ZCHANGED=4 [ =0 UNLESS ENTRY HAS BEEN CHANGED 21 2F6B #DEF ZREWOUND=16 [ =0 UNLESS FILE HAS JUST BEEN REWOUND 9 2FL2 MGTAND +GTAND 8 2G5L MGTOR +GTOR 9 2GK= MGCLASS +GCLASS 8 2H4W MGPOR +GPOR 9 2HJG MGMASK +GMASK 9 2J46 MGWORDS +GWORDS 4 2JHQ # 6 2K3B TADICTENT 9 2KH2 #HAL +FILE+ADICTENT,+0 4 2L2L TFWB 8 2LG= #HAL +FILE+FWB,+0 4 2L_W # 8 2MFG #DEF ZUSER=CUSER-A1 8 2M_6 #DEF ZPSEU=CPSEU-A1 4 2NDQ # 12 2NYB # OTHER STORAGE USED IS AS FOLLOWS: 7 2PD2 # IN O L P A 12 2PXL [ AWORK1=CORRENT STATUS OF FILE 12 2QC= [ AWORK2=NO OF WORDS TO FINMOVE 4 2QWW # 12 2RBG # DEFINITIONS FOR THE REPLY IN CA2 20 2RW6 #DEF REP1=1 [ERROR - THIS BUDGET IS A PRIVILEGE 19 2S*Q #DEF REP2=2 [ERROR - THIS IS A PSEUDO-USER 18 2STB #DEF REP3=3 [ERROR - ENTRY IS NOT OPEN 18 2T*2 #DEF REP4=4 [ERROR - NO SUCH USER EXISTS 20 2TSL #DEF REP5=5 [ERROR - NO SUCH BUDGET TYPE EXISTS 21 2W#= #DEF REP6=1 [* THIS USER HAS NO SUCH BUDGET RECORD 21 2WRW #DEF REP7=10 [ERROR - THIS PROG MAY NOT OPEN THE DICT. 18 2X?G #DEF REP8=6 [ERROR - ENTRY WOULD OVERFLOW 21 2XR6 #DEF REP9=2 [* THIS USER DOES NOT HOLD THIS PRIVILEGE 19 2Y=Q #DEF REP10=7 [ERROR -THIS IS NOT A PRIVILEGE 20 2YQB #DEF REP11=3 [* NO CHANGE - ENTRY NOT RE-WRITTEN 21 2_=2 #DEF REP12=8 [ERROR - TOO LARGE FOR A BUDGET RECORD 19 2_PL #DEF REP13=11 [ERROR - FILE POINTER DESTROYED 15 329= #DEF REP14=4 [* END OF FILE 17 32NW #DEF REP15=9 [DICTIONARY FORMAT ERROR 19 338G # THOSE LINES MARKED WITH AN ASTERISK * ARE NOT ERROR REPLIES 17 33N6 # AND THE REPLY WORD IN THESE CASES WILL BE POSITIVE 14 347Q # FOR ERRORS, REPLY WORD IS SET NEGATIVE . 4 34MB # 16 3572 # THIS TABLE CONTROLS THE VOLUME OF DATA TRANSFERRED 17 35LL # BETWEEN THE SUBJECT PROGRAM AND JBUDGET,JEXTRA BLOCK 9 366= # FIRST WORD :MODE 20 36KW # SECOND WORD :NO. OF WORDS OF CONTROL AREA (STARTING AT CA1) 19 375G # TO BE MOVED TO JBUDGET,JEXTRA (STARTING AT ZCA1). 11 37K6 # LAST WORD CONTAINS JUMP TO 13 384Q # THE RELEVANT ROUTINE 4 38JB # 5 3942 TABLE 4 39HL # 20 3=3= #40 [OPEN DICT. ENTRY OF SPECIFIED USER 8 3=GW +8 8 3?2G BRN R40 4 3?G6 # 17 3?_Q #41 [CLOSE DICTIONARY ENTRY 8 3#FB +2 8 3#_2 BRN R41 4 3*DL # 19 3*Y= #42 [OPEN THE NEXT USER DICT. ENTRY 8 3BCW +8 8 3BXG BRN R42 4 3CC6 # 19 3CWQ #50 [READ THE SPECIFIED BUDGET RECORD 8 3DBB +10 8 3DW2 BRN R50 4 3F*L # 20 3FT= #51 [REWRITE THE SPECIFIED BUDGET RECORD 8 3G#W +10 8 3GSG BRN R51 4 3H#6 # 19 3HRQ #54 [? TIME AVAILABLE TO THIS USER 8 3J?B +4 8 3JR2 BRN R54 4 3K=L # 21 3KQ= #55 [INCREMENT THE AMOUNT USED OF THIS BUDGET 8 3L9W +4 8 3LPG BRN R55 4 3M96 # 19 3MNQ #60 [READ BUDGET DESCR. LINE FOR THIS 8 3N8B +6 8 3NN2 BRN R60 4 3P7L # 19 3PM= #62 [READ BUDGET DESCR. LINE FOR THIS 8 3Q6W +6 8 3QLG BRN R62 4 3R66 # 19 3RKQ #70 [TEST THE SPECIFIED PRIVILEGE 8 3S5B +3 8 3SK2 BRN R70 9 3T4L #DEF TABLENG=0?-TABLE/3 4 3TJ= # 11 3W3W # THIS IS THE ENTRY ROUTINE 13 3WHG # INITIAL ENTRY POINT IS K1BEXTRA 21 3X36 # HERE THE DUMMY DICTIONARY ENTRY CONTAINING THE BUDGET DESCRIPTION 20 3XGQ # LIST IS READ AND STORED IN THE JBUDGET,JSTORE BLOCK (WHICH WAS 6 3Y2B QK1BEXTRA 19 45B= READ [READ BUDGET DESCRIPTION LIST 10 45TW MHUNTW 3,FILE,FRB 10 46*G NAME 3,JBUDGET,JSTORE 12 46T6 SETNCORE 128,3,FILE,ADICTENT 6 47#Q QK5BEXTRA 20 47SB # AFTER TNE INITIAL ENTRY , K5BEXTRA IS THE STANDARD ENTRY POINT 4 48#2 # 20 48RL # IN THIS ROUTINE, ANY ESSENTIAL DATA IN THE OBJECT PROGRAM AREA 10 49?= # IS MOVED TO THE OLPA 18 49QW # AND ANY OTHER SETTING UP WHICH IS RELEVANT TO ALL THE 10 4==G # EXTRACODES IS DONE. 20 4=Q6 # THEN CONTROL IS SWITCHED TO THE APPROPRIATE SPECIAL ROUTINE. 13 4=RT ...[ IS THE TOP FILE OPEN THE DICTIONARY 7 4=TJ ... TOPFCB2 3 7 4=X? ... LDN 6 6 10 4=_2 ...RA LDX 0 NAMEB+1(1) 11 4?2P ... BXU 0 FUSER1(3),RILL 7 4?4D ... ADN 1 1 7 4?67 ... ADN 3 1 8 4?7W ... BCT 6 RA 10 4?9Q LDX 3 APETADDR(2) 10 4?PB LOCKCA 3,ACAP(2),1 17 4#92 LDX 4 0(1) [GET TYPE/MODE WORD 8 4#NL LDX 1 FX1 15 4*8= ANDX 4 BSP16 [EXTRACT MODE 9 4*MW LDN 0 TABLENG 18 4B7G R001 TXU 4 TABLE(1) [SEEK MATCHING MODE IN TABLE 8 4BM6 BCC R002 7 4C6Q ADN 1 3 8 4CLB BCT 0 R001 8 4D62 LDX 1 FX1 9 4DKL LDX 3 ZMODE(1) 8 4F5= BRN RES2 10 4FJW R002 LDX 5 TABLE+1(1) 9 4G4G #SKI K6BEXTRA>599-599 9 4GJ6 TRACE 4,BXMODE 7 4H3Q STO 1 4 8 4HHB SBX 4 FX1 9 4J32 STO 5 AWORK2(2) 8 4JGL LDX 1 FX1 9 4K2= TXL 5 NOCHEK(1) 19 4KFW BCS R003 [J UNLESS WORDS TO BE MOVED>4 18 4K_G CHECKEXT ACAP(2),5,RESVIOL,APETADDR(2),,R003,HLOCK1 4 4LF6 R003 9 4LYQ LDX 6 ACAP(2) 9 4MDB LDN 7 ACA1(2) 10 4MY2 LDX 3 APETADDR(2) 11 4NCL FOUTMOVE 3,6,7,5,HLOCK1 7 4NX= SMO 4 9 4PBW BRN TABLE+2 8 4PWG RILL LDX 1 FX1 10 4QB6 LDX 3 ZILLINS(1) 7 4QTQ ... ADN 1 1 8 4R*B BRN RES2 5 4RT2 RESVIOL 10 4S#L LDX 3 ZRESVIOL(1) 4 4SS= RES2 9 4T?W TOPCA1 XILL(1) 6 4TRG UNPLUG 7 4W?6 ILLEGALX 3 4 4WQQ # 11 4X=B # END OF EXTRACODE - ZBEXTRA 20 4XQ2 # THIS ROUTINE (USED BY ALL EXTRACODES) COMPLETES THE TRANSFER OF 21 4Y9L # INFORMATION BACK TO THE OBJECT PROGRAM,AND THEN ASKS THAT O.P. BE RUN 4 4YP= Z01 7 4_8W LDN 0 2 9 4_NG STO 0 AWORK2(2) 8 5286 BRN Z02 7 52MQ # NORMAL ENTRY 5 537B ZBEXTRA 15 53M2 LDN 4 0 [REPLY WORD 9 546L Z02 STO 4 ACA2(2) 10 54L= LDX 1 APETADDR(2) 9 555W LDX 5 ACAP(2) 9 55KG LDN 4 ACA1(2) 13 5656 FINMOVE 1,5,4,AWORK2(2),HLOCK1 7 56JQ OLPFIN1 9 574B BRN K5BEXTRA 4 57J2 # 4 583L # 4 58H= # 4 592W # 7 59GG # MODE #40 15 5=26 # OPEN THE SPECIFIED USER'S DICTIONARY ENTRY 13 5=FQ # AND READ THE NAME OF HIS SUPERIOR 4 5=_B R40 9 5?F2 STOZ AWORK1(2) 19 5?YL LDX 0 ACA3(2) ['NO SUCH USER' IF USERNAME 14 5#D= NGN 4 REP4 [BEGINS 0000 8 5#XW BZE 0 Z01 19 5*CG BXE 0 ZUP(1),Z01 [IGNORE DUMMY UPDATE RECORD 11 5*X6 SETNCORE 3,6,FILE,ADICT 9 5BBQ LDN 5 ACA3(2) 8 5BWB ADN 6 A1 7 5CB2 MOVE 5 3 7 5CTL READDICT 18 5D*= TESTREPNOT OK,Z01 [OR IF USER CAN'T BE FOUND 11 5DSW MHUNTW 3,FILE,ADICTENT 8 5F#G STO 3 FX2 11 5FS6 MHUNTW 1,FILE,ADICTENT 8 5G?Q STO 2 FX2 7 5GRB FREECORE 1 20 5H?2 NGN 4 REP2 [FLAG APPROPRIATE ERROR IF THIS IS 9 5HQL LDX 0 CPSEU(3) 8 5J== BNG 0 Z01 5 5JPW M0502 17 5K9G LDN 0 ZENTRY [AND MARK ENTRY ^OPEN^ 9 5KP6 ORS 0 AWORK1(2) 19 5L8Q LDN 4 CUSER(3) [MOVE USERNAME OF THIS USER 16 5LNB LDN 5 ACA3(2) [AND HIS SUPERIOR 15 5M82 MOVE 4 6 [ TO OUTPUT AREA 9 5MML BRN ZBEXTRA 4 5N7= # 4 5NLW # 4 5P6G # 4 5PL6 # 7 5Q5Q # MODE #42 14 5QKB # OPEN THE NEXT USER DICTIONARY ENTRY 17 5R52 # AND READ THE USERNAME OF THE USER AND HIS SUPERIOR 4 5RJL R42 6 5S4= STEP 16 5SHW BZE 3 M0602 [J IF END OF FILE 9 5T3G LDX 0 ZUSER(3) 19 5TH6 BXE 0 ZUP(1),R42 [IGNORE DUMMY UPDATE RECORDS 18 5W2Q BZE 0 R42 [GO BACK TO READ NEXT ENTRY 18 5WGB LDX 0 ZPSEU(3) [IF THIS IS A PSEUDO-USER 18 5X22 BNG 0 R42 [GO BACK TO READ NEXT ENTRY 9 5XFL LDEX 5 FRH(3) 11 5X_= MHUNTW 1,FILE,ADICTENT 10 5YDW LDX 0 ALOGLEN(1) 9 5YYG BXGE 0 5,M0601 11 5_D6 ALTLEN 1,5,FILE,ADICTENT 7 5_XQ STEPAGAIN 11 62CB MHUNTW 1,FILE,ADICTENT 5 62X2 M0601 8 63BL LDN 4 A1(1) 7 63W= SMO 5 7 64*W MOVE 3 0 7 64TG LDX 3 1 8 65*6 BRN M0502 7 65SQ M0602 BACKSPACE 9 66#B STOZ AWORK1(2) 8 66S2 LDN 4 REP14 8 67?L BRN Z01 4 67R= # 4 68=W # 4 68QG # 4 69=6 # 7 69PQ # MODE #41 14 6=9B # CLOSE THE DICTIONARY ENTRY JUST OPENED 4 6=P2 R41 9 6?8L LDN 0 ZENTRY 9 6?N= ANDX 0 AWORK1(2) 8 6#7W NGN 4 REP3 18 6#MG BZE 0 Z01 [ERROR IF NO ENTRY IS OPEN 20 6*76 LDN 4 REP11 [POSSIBLE ERROR IF ENTRY UNCHANGED 9 6*LQ LDN 0 ZCHANGED 9 6B6B ANDX 0 AWORK1(2) 8 6BL2 BZE 0 Z01 9 6C5L LDN 0 ZREWOUND 9 6CK= ANDX 0 AWORK1(2) 8 6D4W NGN 4 REP13 19 6DJG BNZ 0 Z01 [ERROR IF FILE POINTER DESTROYED 11 6F46 MHUNTW 3,FILE,ADICTENT 7 6F57 ...#SKI JWPHASE2 4 6F68 ...( 11 6F79 ... JBC R41REP,3,BMONCS 9 6F8= ... BC 3,BMONCS 9 6F9? ... BUDGUSEN GMONEY 12 6F=# ... MHUNTW 3,JBUDGET,JBUDGUSER 11 6F?* ... MHUNTW 2,FILE,ADICTENT 10 6F#B ... LDX 7 JALLOWED(3) 10 6F*C ... SBX 7 JCONSUMED(3) 11 6FBD ... DICTWELL CUSER(2),MONEY,7 11 6FCF ... MFREEW JBUDGET,JBUDGUSER 11 6FDG ... MHUNTW 3,FILE,ADICTENT 5 6FFH ...R41REP 4 6FGJ ...) 7 6FHQ PHOTO 6 9 6G3B LDX 0 TFWB(1) 18 6GH2 NAMEX 3 [IT CAN BE REWRITTEN IN SITU 7 6H2L REPLACE 9 6HG= TESTMOVE 6,M0701 10 6H_W MHUNTW 3,FILE,FWB 10 6JFG M0701 LDX 0 TADICTENT(1) 7 6J_6 NAMEX 3 9 6KDQ STOZ AWORK1(2) 9 6KYB BRN ZBEXTRA 4 6LD2 # 4 6LXL # 4 6MC= # 4 6MWW # 7 6NBG # MODE #60 11 6NW6 # READ BUDGET DESCR, LINE 13 6P*Q # FOR THIS BIT PATTERN BUDGET TYPE 4 6PTB R60 11 6Q*2 MHUNTW 3,JBUDGET,JSTORE 9 6QSL LDX 6 ACA3(2) 17 6R#= CALL 4 SR0 [TRY TO MATCH BIT PATTERN 10 6RRW LDN 4 IZLIST+1(3) 9 6S?G LDN 5 ACA4(2) 7 6SR6 MOVE 4 3 9 6T=Q BRN ZBEXTRA 4 6TQB # 4 6W=2 # 4 6WPL # 7 6X9= # MODE #62 12 6XNW # READ BUDGET DESCRIPTION LINE 13 6Y8G # FOR THIS CHAR STRING BUDGET TYPE 4 6YN6 R62 11 6_7Q MHUNTW 3,JBUDGET,JSTORE 9 6_MB LDX 5 ACA4(2) 9 7272 LDX 6 ACA5(2) 10 72LL LDX 0 IZCOUNT(3) 10 736= M1402 TXU 5 IZLIST+1(3) 19 73KW TXU 6 IZLIST+2(3) [SEEK MATCHING CHARACTER STRING 8 745G BCC M1403 9 74K6 ADN 3 IZLINE 8 754Q BCT 0 M1402 8 75JB NGN 4 REP5 16 7642 BRN Z01 [REPLY ^NO SUCH TYPE^ 19 76HL M1403 LDX 5 IZLIST(3) [IF FOUND,STORE IN^CONTROL AREA^ 16 773= LDX 6 IZLIST+3(3) [OF JBUDGET,JEXTRA, 18 77GW M1404 STO 5 ACA3(2) [THE BUDGET BIT PATTERN 19 782G STO 6 ACA6(2) [AND THE RATION COEFFICIENT 9 78G6 BRN ZBEXTRA 4 78_Q # 4 79FB # 4 79_2 # 7 7=DL # MODE #50 13 7=Y= # READ THE SPECIFIED BUDGET RECORD 4 7?CW R50 9 7?XG LDN 0 ZENTRY 9 7#C6 ANDX 0 AWORK1(2) 8 7#WQ NGN 4 REP3 18 7*BB BZE 0 Z01 [ERROR IF NO ENTRY IS OPEN 21 7*W2 NGN 4 REP1 [IF ERROR,^THIS BUDGET IS A PRIVILEGE^ 9 7B*L LDX 0 ACA3(2) 10 7BT= ANDX 0 MGCLASS(1) 9 7C#W TXU 0 MGPOR(1) 8 7CSG BCC Z01 9 7D#6 BUDGUSE ACA3(2) 8 7DRQ LDN 4 REP6 10 7F?B TESTREPNOT OK,Z01 12 7FR2 MHUNTW 3,JBUDGET,JBUDGUSER 8 7G=L ADN 3 A1 9 7GQ= LDN 4 ACA3(2) 8 7H9W SMO 0(3) 7 7HPG MOVE 3 1 8 7J96 SBN 3 A1 7 7JNQ FREECORE 3 9 7K8B BRN ZBEXTRA 4 7KN2 # 4 7L7L # 4 7LM= # 7 7M6W # MODE #51 13 7MLG # WRITE THE SPECIFIED BUDGET RECORD 4 7N66 R51 8 7NKQ NGN 4 REP3 9 7P5B LDN 0 ZENTRY 9 7PK2 ANDX 0 AWORK1(2) 18 7Q4L BZE 0 Z01 [ERROR IF NO ENTRY IS OPEN 9 7QJ= LDX 0 ACA3(2) 9 7R3W SBN 0 GWORDS+1 8 7RHG NGN 4 REP12 8 7S36 BPZ 0 Z01 19 7SGQ LDX 6 ACA4(2) [SELECT BIT PATTERN OF BUDGET 11 7T2B MHUNTW 3,JBUDGET,JSTORE 17 7TG2 CALL 4 SR0 [AND CHECK ITS VALIDITY 12 7T_L HUNTW 3,JBUDGET,JBUDGUSER 8 7WF= BPZ 3 M1701 14 7WYW SETNCORE GWORDS+1,3,JBUDGET,JBUDGUSER 9 7XDG M1701 LDX 6 ACA3(2) 20 7XY6 LDX 0 ACA4(2) [SELECT BIT PATTERN & APPLY MASK 18 7YCQ ANDX 0 MGWORDS(1) [TO FIND MINIMUM NO. WORDS IN 15 7YXB TXL 6 0 [B.R. SUPPLIED. 19 7_C2 BCC M1700 [IF SIZE SUPPLIED IS TOO SMALL, 20 7_WL STO 0 6 [SUBSTITUTE THE STANDARD MINIMUM (FOR 17 82B= STO 0 ACA3(2) [ THIS BUDGET TYPE) 21 82TW M1700 ADN 2 ACA3 [MOVE RECORD WHICH IS TO BE WRITTEN 17 83*G ADN 3 A1 [INTO JBUDGET,JBUDGUSER 7 83T6 SMO 6 7 84#Q MOVE 2 1 7 84SB BUDGWRITE 11 85#2 TESTREPNOT TOOLONG,M1702 19 85RL NGN 4 REP8 [ERROR IF ENTRY WOULD OVERFLOW 8 86?= BRN Z01 9 86QW M1702 LDN 0 ZCHANGED 9 87=G ORS 0 AWORK1(2) 9 87Q6 BRN ZBEXTRA 4 889Q # 4 88PB # 4 8992 # 7 89NL # MODE #55 18 8=8= # INCREMENT THE AMOUNT USED OF THE SPECIFIED BUDGET TYPE 4 8=MW R55 8 8?7G NGN 4 REP3 9 8?M6 LDN 0 ZENTRY 9 8#6Q ANDX 0 AWORK1(2) 18 8#LB BZE 0 Z01 [ERROR IF NO ENTRY IS OPEN 17 8*62 LDX 6 ACA3(2) [SELECT BIT PATTERN 11 8*KL MHUNTW 3,JBUDGET,JSTORE 19 8B5= CALL 4 SR0 [CHECK VALIDITY OF BIT PATTERN 17 8BJW LDX 5 ACA4(2) [AMOUNT OF INCREMENT 8 8C4G BUDGINCX 6,5 8 8CJ6 NGN 4 REP8 9 8D3Q TESTREP OK,M2002 10 8DHB TESTREPN INCREASE,Z01 5 8F32 M2002 9 8FGL LDN 5 ZCHANGED 9 8G2= ORS 5 AWORK1(2) 9 8GFW BRN ZBEXTRA 4 8G_G # 4 8HF6 # 4 8HYQ # 7 8JDB # MODE #54 4 8JY2 R54 9 8KCL LDN 0 ZENTRY 8 8KX= NGN 4 REP3 9 8LBW ANDX 0 AWORK1(2) 17 8LWG BZE 0 Z01 [ERROR IF NO ENTRY OPEN 8 8MB6 LDN 6 #77 9 8MTQ ANDX 6 ACA3(2) 20 8N*B SLL 6 GSHIFT [CONCOCT BIT PATTERN FOR THIS URGENCY 9 8NT2 ANDX 6 MGTAND(1) 9 8P#L ORX 6 MGTOR(1) 7 8PS= LDN 5 0 9 8Q?W STO 6 ACA3(2) 7 8QRG BUDGUSE 6 19 8R?6 TESTREPNOT OK,M2101 [IF USER HAS NONE OF THIS BUDGET, 12 8RQQ MHUNTW 3,JBUDGET,JBUDGUSER 17 8S=B LDX 5 JALLOWED(3) [AMOUNT AVAILABLE =0 10 8SQ2 SBX 5 JCONSUMED(3) 9 8T9L M2101 STO 5 ACA4(2) 9 8TP= BRN ZBEXTRA 4 8W8W # 4 8WNG # 4 8X86 # 7 8XMQ # MODE #70 12 8Y7B # TEST THE SPECIFIED PRIVILEGE 4 8YM2 R70 8 8_6L NGN 4 REP3 9 8_L= LDN 0 ZENTRY 9 925W ANDX 0 AWORK1(2) 8 92KG BZE 0 Z01 9 9356 LDX 6 ACA3(2) 10 93JQ ANDX 6 MGCLASS(1) 8 944B NGN 4 REP10 9 94J2 TXU 6 MGPOR(1) 19 953L BCS Z01 [ERROR IF THIS IS NOT A PRIVILEGE 9 95H= LDX 6 ACA3(2) 11 962W MHUNTW 3,FILE,ADICTENT 18 96GG TESTPRIV 6,3 [X0=0 IF PRIVILEGE NOT HELD 9 9726 BNZ 0 ZBEXTRA 19 97FQ LDN 4 REP9 [SET UP APPROPRIATE REPLY WORD 8 97_B BRN Z01 4 98F2 # 4 98YL # 19 99D= # THIS SUBROUTINE MATCHES A BIT PATTERN AGAINST THOSE IN THE 11 99XW # BUDGET DESCRIPTION LIST 16 9=CG # ON ENTRY : X3 POINTS TO JBUDGET,JSTORE BLOCK 15 9=X6 # AND X6 = BIT PATTERN OF BUDGET 9 9?BQ # X4=LINK 11 9?WB # USES ALSO X5 10 9#B2 SR0 LDX 0 IZCOUNT(3) 9 9#TL ANDX 6 MGMASK(1) 18 9**= S001 LDX 5 IZLIST(3) [SEEK MATCHING BIT PATTERN IN 17 9*SW ANDX 5 MGMASK(1) [BUDGET DESCRIPTION LIST 7 9B#G TXU 5 6 8 9BS6 BCC S002 9 9C?Q ADN 3 IZLINE 8 9CRB BCT 0 S001 20 9D?2 NGN 4 REP5 [IF NO MATCH, ERROR: NO SUCH BUDGET 8 9DQL BRN Z01 16 9F== S002 EXIT 4 0 [EXIT IF MATCH FOUND 10 9FPW MENDAREA 50,K99BEXTRA 4 9G9G #END 8 ____ ...62700214000300000000