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