8 22FL ... SEG BUDGTWO 12 23YG SEGENTRY K1BUDGTWO,QK1BUDGTWO 12 24D6 SEGENTRY K2BUDGTWO,QK2BUDGTWO 12 24XQ SEGENTRY K3BUDGTWO,QK3BUDGTWO 12 25CB SEGENTRY K4BUDGTWO,QK4BUDGTWO 12 25X2 SEGENTRY K5BUDGTWO,QK5BUDGTWO 12 26BL SEGENTRY K7BUDGTWO,QK7BUDGTWO 12 26W= SEGENTRY K9BUDGTWO,QK9BUDGTWO 13 27*W SEGENTRY K10BUDGTWO,QK10BUDGTWO 13 27TG SEGENTRY K11BUDGTWO,QK11BUDGTWO 13 28*6 SEGENTRY K12BUDGTWO,QK12BUDGTWO 13 28SQ SEGENTRY K31BUDGTWO,QK31BUDGTWO 4 29#B # 20 29S2 # THIS CHAPTER CONTAINS THE SUBROUTINES USED BY THE FOLLOWING 8 2=?L # BUDGET MACROS: 16 2=R= # BUDGERASE,BUDGCHAR,OPENBUDG,CLOSBUDG,CLOSBINC 7 2?=W # BUDGSTART 4 2?QG # 17 2#=6 MGCLASS +GCLASS [MASK FOR CLASSIFICATION 17 2#PQ MGPOR +GPOR [PRIVILEGE IDENTIFICATION 19 2*9B MGTOR +GTOR [TRANSIENT BUDGET IDENTIFICATION 19 2*P2 MGWORDS +GWORDS [NO. OF INFORMATION WORDS IN B.R. 6 2B8L NB +10 9 2BN= 12HMASTER 10 2C7W 12HDICTIONARY 8 2CMG +0 8 2D76 +1 8 2DLQ +0 7 2F6B #DEF UNAMED=A1 9 2FL2 #DEF UCURRENT=UNAMED+3 9 2G5L #DEF UTYPE=UCURRENT+3 9 2GK= #DEF UCHANGE=UTYPE+1 14 2H4W XJUSNA +JUSNA [USERNAME 15 2HJG XJBUDTYPE +JBUDTYPE [BUDGET TYPE 16 2J46 XJBUDCHAN +JBUDCHAN [BUDGET CHANGE 17 2JHQ XJPARMIS +JPARMIS [%C PARAMETER MISSING 16 2K3B XJNOPAR +JNOPAR [NO PARAMETERS 19 2KH2 XERB1 +ERB1 [NO SUCH BUDGET TYPE AS %C 19 2L2L XERB11 +ERB11 [%C IS NOT A TRANSIENT BUDGET 19 2LG= XJZPRIV +JZPRIV [PRIVILEGE SHOULD BE FOLLOWED 19 2L_W [ BY GIVE OR TAKE 6 2M74 ...#UNSET FTS1 17 2M#= ...XUSERF +ERUSERFORM [ERROR IN USERNAME 9 2MFG XGIVE 4HGIVE 9 2M_6 XTAKE 4HTAKE 7 2NDQ MAN 12HMANAGER 4 2NYB # 21 2PD2 # ROUTINE CALLED BY THE BUDGERASE MACRO,WHICH RETURNS THE BUDGETS 19 2PXL # OF A USER WHO IS BEING ERASED TO HIS IMMEDIATE SUPERIOR. 20 2QC= # THE SUPERIOR'S ENTRY IS REWRITTEN,BUT THE INFERIOR'S IS NOT. 20 2QWW # IT IS ASSUMED THAT THE INFERIOR USER HAS NO INFERIORS OTHER 9 2RBG # THAN PSUEDO-USERS. 7 2RW6 # ON ENTRY: 20 2S*Q # THE DICTIONARY IS OPEN,AND THE ENTRY FOR THE USER BEING ERASED 16 2STB # IS IN THE FIRST FILE,ADICTENT IN THE CHAIN. 6 2T*2 QK1BUDGTWO 11 2TSL MHUNTW 3,FILE,ADICTENT 21 2W#= LDX 7 CNUMQ(3) [SELECT NO. OF BUDGETS HELD BY INFERIOR 9 2WRW #SKI K6BMACROS>999-999 11 2X?G TRACE CNUMQ(3),GB Q001 21 2XR6 BZE 7 Q990 [IF ZERO,NO PROCESSING IS NECESSARY 16 2Y=Q LDX 5 CSUPUSER(3) [LOAD NAME OF THE 16 2YQB LDX 6 CSUPUSER+1(3) [SUPERIOR USER 10 2_=2 LDX 4 CSUPUSER+2(3) 19 2_PL TXU 5 MAN(1) [IF SUPERIOR USER IS MANAGER, 19 329= TXU 6 MAN+1(1) [NO UPDATE OF BUDGET REQUIRED 9 32NW TXU 4 MAN+2(1) 8 338G BCC Q990 11 33N6 SETNCORE 3,6,FILE,ADICT 11 347Q MHUNTW 3,FILE,ADICTENT 10 34MB LDN 5 CSUPUSER(3) 8 3572 ADN 6 A1 7 35LL MOVE 5 3 20 366= PHOTO 4 [OTHERWISE READ HIS SUPERIOR'S ENTRY 7 36KW READDICT 9 375G TESTREP2 OK,Q0035 10 37K6 GEOERR 1,NO SUPER 5 384Q Q0035 9 38JB TESTMOVE 4,Q004 21 3942 MHUNTW 3,FILE,ADICTENT [THE ENTRY FOR THE USER BEING ERASED 19 39HL HUNT2 3,FILE,ADICTENT [NOW IN THE SECOND FILE ADICTENT 4 3=3= Q004 21 3=GW STOZ 6 [X6 IS USED AS A MODIFIER FOR B.R.'S ; 7 3?2G Q1 SMO 6 19 3?G6 LDX 5 CQUANT(3) [SELECT NEXT BUDGET BIT PATTERN 7 3?_Q PHOTO 4 19 3#FB BUDGUSE 5 [READ SUPERIOR'S BUDGET RECORD 9 3#_2 #SKI K6BMACROS>150-150 10 3*DL TRACE 5,GBUDG Q1 21 3*Y= TESTREP2 OK,Q3 [IF SUPERIOR HAS NO SUCH BUDGET RECOR 14 3BCW SETNCORE GWORDS+1,2,JBUDGET,JBUDGUSER 18 3BXG STOZ A1+1(2) [SET UP A DUMMY B.R. FOR HIM 9 3CC6 LDN 0 A1+1(2) 9 3CWQ LDN 1 A1+2(2) 21 3DBB MOVE 0 GWORDS-1 [CLEARING ALL WORDS BUT THE BIT PATTERN 8 3DW2 LDX 1 FX1 9 3F*L STO 5 JBITS(2) 10 3FT= LDX 0 MGWORDS(1) 7 3G#W ANDX 0 5 8 3GSG STO 0 A1(2) 9 3H#6 #SKI K6BMACROS>999-999 10 3HRQ TRACE 5,GBUDNOBR 8 3J?B BRN Q301 12 3JR2 Q3 HUNT 2,JBUDGET,JBUDGUSER 9 3K=L Q301 TESTMOVE 4,Q303 19 3KQ= MHUNTW 3,FILE,ADICTENT [FIND SECOND DICTIONARY ENTRY 11 3L9W HUNT2 3,FILE,ADICTENT 7 3LPG Q303 ADX 3 6 10 3M96 LDX 0 MGWORDS(1) 7 3MNQ ANDX 0 5 20 3N8B TXL 0 A1(2) [NEW B.R.TO BE THE SAME SIZE AS THE 17 3NN2 BCS Q305 [LARGER OF THE OLD ONES 19 3P7L STO 0 A1(2) [ASSUMED BLOCK TO BE ZERO-FILLED 10 3PM= Q305 LDX 0 MGCLASS(1) 18 3Q6W ANDX 0 5 [SELECT BUDGET CLASSIFICATION 9 3QLG TXU 0 MGTOR(1) 8 3R66 BCC Q5 10 3RKQ # STABLE BUDGET RECORDS: 18 3S5B # RATION' (SUPERIOR) =RATION (SUP) +RATION (INFERIOR) 18 3SK2 # AMT.USED' (SUP) =AMT.USED (SUP) [NO CHANGE 19 3T4L # AMT.CONSUMED' (SUP) =AMT.CONSUMED(SUP) +AMT.CONSUMED(INF) 13 3TJ= LDX 0 CQUANT+JRATION-JBITS(3) 15 3W3W ADS 0 JRATION(2) [INCREMENT RATION 14 3WHG LDXC 0 CQUANT+JCONSUMED-JBITS+1(3) 11 3X36 ADSC 0 JCONSUMED+1(2) 13 3XGQ LDX 0 CQUANT+JCONSUMED-JBITS(3) 20 3Y2B ADS 0 JCONSUMED(2) [INCREMENT DOUBLE LENGTH AMT.CONSUMED 10 3YG2 LDX 1 MGWORDS(1) 7 3Y_L ANDX 1 5 7 3_F= SBN 1 5 8 3_YW BRN Q503 9 42DG # TRANSIENT BUDGETS 20 42Y6 # FOR EACH WORD IN THE TRANSIENT BUDGET RECORD (EXCLUDING BIT 7 43CQ # PATTERN) : 20 43XB # SUPERIOR'S NEW ENTRY = HIS OLD ENTRY + HIS INFERIOR'S ENTRY 13 44C2 Q5 LDX 0 CQUANT+JRATION-JBITS(3) 15 44WL ADS 0 JRATION(2) [INCREMENT RATION 13 45B= LDX 0 CQUANT+JALLOWED-JBITS(3) 10 45TW ADS 0 JALLOWED(2) 13 46*G LDX 0 JCONSUMED-JBITS+CQUANT(3) 10 46T6 ADS 0 JCONSUMED(2) 10 47#Q LDX 1 MGWORDS(1) 7 47SB ANDX 1 5 7 48#2 SBN 1 4 8 48RL Q503 BZE 1 Q6 7 49?= Q505 SMO 1 10 49QW LDX 0 CQUANT+4(3) 21 4==G SMO 1 [INCREMENT NON-STANDARD WORDS (IF ANY) 10 4=Q6 ADS 0 JBITS+4(2) 8 4?9Q BCT 1 Q505 19 4?PB Q6 BUDGWRITE [REWRITE SUPERIOR'S BUDGET RECORD 9 4#92 #SKI K6BMACROS>999-999 11 4#NL TRACE EXEC3(2),GBUDG Q6 16 4*8= SBX 3 6 [RESTORE POINTER IN X3 9 4*MW TESTMOVE 4,Q603 11 4B7G MHUNTW 3,FILE,ADICTENT 17 4BM6 HUNT2 3,FILE,ADICTENT [FIND INFERIOR'S ENTRY 10 4C6Q Q603 ANDX 5 MGWORDS(1) 7 4CLB ADX 6 5 11 4D62 MFREEW JBUDGET,JBUDGUSER 9 4DKL #SKI K6BMACROS>150-150 9 4F5= TRACE 7,GB Q606 8 4FJW BCT 7 Q1 11 4G4G MHUNTW 2,FILE,ADICTENT 10 4GJ6 NAME 2,FILE,FWB 7 4H3Q REPLACE 9 4HHB MFREEW FILE,FWB 4 4J32 Q990 9 4JGL #SKI K6BMACROS>999-999 10 4K2= TRACE K9,GIVEBDG7 5 4KFW UP 4 4K_G # 4 4LF6 # 9 4LYQ # BUDGCHAR SUBROUTINE 19 4MDB # THIS SUBROUTINE SETS UP A JBUDGET,JLINE BLOCK CONTAINING 15 4MY2 # THAT LINE FROM THE BUDGET DESCRIPTION LIST 20 4NCL # WHOSE CHARACTER STRING NAME MATCHES THE CHARACTER STRING NAME 17 4NX= # IN APARA OF THE FIRST CPB,CUNI BLOCK IN THE CHAIN. 6 4PBW QK2BUDGTWO 13 4PWG SETNCORE IZLINE,3,JBUDGET,JLINE 18 4QB6 STEP [READ BUDGET DESCRIPTION LIST 10 4QTQ HUNT 2,CPB,CUNI 9 4R*B #SKI K6BMACROS>99-99 4 4RT2 ( 18 4S#L BZE 3 R00 [MUST BE POSITIONED AT FIRST 10 4SS= LDX 0 CUSER-A1(3) 10 4T?W ADX 0 CUSER+1-A1(3) 10 4TRG ADX 0 CUSER+2-A1(3) 8 4W?6 BNZ 0 R00 8 4WQQ BPZ 2 R01 10 4X=B R00 GEOERR 1,BUDGCHAR 11 4XQ2 R01 TRACE APARA(2),B CHAR01 4 4Y9L ) 9 4YP= LDX 0 ANUM(2) 18 4_8W BNG 0 R03 [ERROR IF NO PARAMETER 17 4_NG BZE 0 R03 [OR VULL PARAMETER 8 5286 ANDN 0 #7777 7 52MQ SBN 0 9 18 537B BPZ 0 R03 [J IF MORE THAN 8 CHASRS 9 53M2 LDX 4 APARA(2) 10 546L LDX 5 APARA+1(2) 7 54L= ADN 0 4 18 555W BPZ 0 R010 [J IF MORE THAN 4 CHARS 8 55KG LDX 5 ACES 4 5656 R010 17 56JQ LDX 0 IZCOUNT-A1(3) [NO OF BUDGETS IN LIST 8 574B BZE 0 R03 4 57J2 R02 19 583L TXU 4 IZLIST+1-A1(3) [SEEK MATCHING CHARACTER STRING 11 58H= TXU 5 IZLIST+2-A1(3) 8 592W BCC R04 9 59GG ADN 3 IZLINE 8 5=26 BCT 0 R02 4 5=FQ R03 9 5=_B #SKI K6BMACROS>99-99 10 5?F2 TRACE 5,BCNOTYPE 10 5?YL VFREEW JBUDGET,JLINE 9 5#D= KEEPREP 7,NOSUCH 8 5#XW BRN R05 11 5*CG R04 MHUNTW 2,JBUDGET,JLINE 10 5*X6 LDN 5 JPATTERN(2) 19 5BBQ LDN 4 IZLIST-A1(3) [STORE BUDGET DESCRIPTION LINE 15 5BWB MOVE 4 IZLINE [IN JBUDGET BLOCK 9 5CB2 #SKI K6BMACROS>99-99 12 5CTL TRACE JPATTERN(2),BCHAR OK 8 5D*= KEEPREP 7,OK 7 5DSW R05 PUTREP 7 5 5F#G UP 4 5FS6 # 21 5G?Q # ROUTINE TO OPEN THE DICTIONARY AND READ THE PROPER USER'S ENTRY 12 5GRB # CALLED BY OPENBUDG 6 5H?2 QK3BUDGTWO 11 5HQL SETNCORE 10,5,FILE,FABSNB 8 5J== LDN 4 NB(1) 8 5JPW ADN 5 A1 8 5K9G MOVE 4 10 11 5KP6 OPEN XBREAK,GENERAL 10 5L8Q HUNT 3,FILE,FABSNB 10 5LNB NAME 3,FILE,ADICT 7 5M82 CJOBLOCK 2 8 5MML ADN 2 JUSER 8 5N7= ADN 3 A1 7 5NLW MOVE 2 3 7 5P6G READDICT 9 5PL6 #SKI K6BMACROS>101-101 11 5Q5Q TRACE EXEC3(2),OPENBUDG 7 5QKB UPPLUS 1 5 5R52 XBREAK 9 5RJL GEOERR 1,BUDGBRK 4 5S4= # 21 5SHW # ROUTINE TO OPEN THE DICT.(GENERAL) AND READ THE ENTRY FOR THE OWNE 21 5T3G # OF FILES IN THE DIRECTORY SPECIFIED BY THE INPUT FABSBN, 14 5TH6 # WHICH MUST BE 4 WORDS ONLY 6 5W2Q QK31BUDGTWO 9 5WGB #SKI K6BMACROS>99-99 4 5X22 ( 10 5XFL MHUNT 1,FILE,FABSNB 7 5X_= LDN 0 4 10 5YDW SBX 0 ALOGLEN(1) 8 5YYG BZE 0 ST00 10 5_D6 WRNG GEOERR 1,ABSWRONG 4 5_XQ ST00 4 62CB ) 16 62X2 FINDNAME [EXPAND PABSNB 9 63BL TESTRPN2 OK,ST30 10 63W= MHUNT 1,FILE,FABSNB 7 6427 ... LDN 0 4 10 6464 ... SBX 0 ALOGLEN(1) 8 649_ ... BZE 0 ST30 8 64*W LDX 2 A1(1) 7 64TG ADX 2 1 4 65*6 ST10 9 65SQ LDX 0 A1-2(2) 16 66#B BPZ 0 ST20 [J IF NOT PSEUDO 7 66S2 SBN 2 6 17 67?L BRN ST10 [LOOK AT NEXT USER UP 4 67R= ST20 8 68=W ADN 2 A1-5 8 68QG LDN 3 A1(1) 20 69=6 MOVE 2 3 [MOVE USERNAME TO TOP OF BLOCK 17 69PQ NAME 1,FILE,ADICT [& NAME IT AN ADICT 11 6=9B SETNCORE 10,2,FILE,FABSNB 8 6=P2 LDN 1 NB(1) 8 6?8L ADN 2 A1 8 6?N= MOVE 1 10 14 6#7W OPEN XBREAK,GENERAL [DICT. 9 6#MG MFREE FILE,FABSNB 7 6*76 READDICT 9 6*LQ TESTREP2 OK,ST31 10 6*WJ ... TESTREP2 NOUSER,ST30A 9 6B6B GEOERR 1,B2WRONG 4 6BL2 ST31 7 6C5L UPPLUS 1 5 6C=S ...ST30A 6 6CD2 ... CLOSE 4 6CK= ST30 5 6D4W UP 4 6DJG # 7 6F46 # CLOSBUDG 18 6FHQ # ROUTINE TO RE-WRITE ENTRY AND CLOSE THE DICTIONARY 6 6G3B QK4BUDGTWO 6 6GH2 QK5BUDGTWO 11 6H2L MHUNTW 2,FILE,ADICTENT 19 6H4J ... JBC NOUP,2,BMONCS [J IF MONEY NOT CHANGED SIGN 9 6H5H ... BC 2,BMONCS 18 6H6G ... BUDGUSEN GMONEY [GET MONEY BUDGET RECORD 12 6H8D ... MHUNTW 3,JBUDGET,JBUDGUSER 11 6H=B ... MHUNTW 2,FILE,ADICTENT 10 6H?* ... LDX 7 JALLOWED(3) 10 6H## ... SBX 7 JCONSUMED(3) 16 6H*? ... DICTWELL CUSER(2),MONEY,7 [UPDATE JOBLIST ETC 11 6HB= ... MFREEW JBUDGET,JBUDGUSER 11 6HD8 ...NOUP MHUNTW 2,FILE,ADICTENT 10 6HG= NAME 2,FILE,FWB 7 6H_W REPLACE 9 6JFG MFREEW FILE,FWB 6 6J_6 CLOSE 6 6K6# ...#UNSET FTS1 6 6K?G ... DICTJL 9 6KDQ #SKI K6BMACROS>101-101 10 6KYB TRACE K7,CLOSBUDG 5 6LD2 UP 4 6LXL # 4 6MC= # 9 6MWW # BUDGSTART ROUTINE 20 6NBG # THE BUDGSTART ROUTINE CHECKS THAT A USER IS NOT OVERDRAWN ON 9 6NW6 # HIS MONEY BUDGET. 6 6P*Q QK7BUDGTWO 9 6PTB BUDGUSEN GMONEY 9 6Q*2 #SKI K6BMACROS>101-101 11 6QSL TRACE EXEC3(2),BUDGSTAR 21 6R#= KEEPREP 7,OK [IF THE USER HAS NO MONEY BUDGET RECORD, 21 6RRW TESTRPN2 OK,W06 [HE MAY CONTINUE(AS HE IS NOT OVERDRAWN) 12 6S?G MHUNTW 3,JBUDGET,JBUDGUSER 20 6SR6 LDX 6 JALLOWED(3) [IF THE USER HAS CONSUMED MORE MONEY 17 6T=Q SBX 6 JCONSUMED(3) [THAN HE HAS AVAILABLE, 9 6TQB #SKI K6BMACROS>90-90 10 6W=2 TRACE 6,MONEYLFT 8 6WPL BPZ 6 W04 16 6X9= KEEPREP 7,NOTENUF [THE REPLY IS NOTENUF 7 6XNW W04 FREECORE 3 7 6Y8G W06 PUTREP2 7 5 6YN6 UP 4 6_7Q # 6 6_MB QK9BUDGTWO 7 7272 LDN 4 0 8 72LL LDX 5 GSIGN 8 736= BRN QIN 6 73KW QK10BUDGTWO 7 745G LDN 4 0 7 74K6 LDN 5 0 8 754Q BRN QIN 6 75JB QK11BUDGTWO 8 7642 LDX 4 GSIGN 7 76HL LDN 5 0 7 773= QIN LDN 6 0 7 77GW LDN 7 0 7 782G LDN 3 2 7 78G6 S1 SPARAPASS 10 78_Q HUNT 1,CPB,CUNI 9 79FB NGX 0 ANUM(1) 20 79_2 BPZ 7 S6 [J. UNLESS USERNAME ALREADY FOUND 18 7=DL BPZ 0 QR1 [J. IF PARAMETER MISSING 18 7=Y= S2 BNG 6 QR3 [J IF USERNAME NOT FOUND 11 7?CW SETNCORE 10,2,FILE,FABSNB 8 7?XG ADN 2 A1 8 7#C6 ADN 1 NB 8 7#WQ MOVE 1 10 11 7*BB OPEN SBREAK,READ,QUERY 9 7*W2 TESTREPN OK,QR10 7 7B*L BUDGCHAR 10 7BT= TESTREP2 NOSUCH,QR7 7 7C#W CLOSETOP 18 7CJN ... MFREE FILE,FABSNB [FREE :MASTER'S FABSNB 19 7CSG ORX 6 GSIGN [SET BUDGET TYPE FOUND MARK 15 7D#6 BPZ 5 S25 [J. UNLESS BQ 9 7DRQ MFREE CPB,CUNI 8 7F?B BRN S11 11 7FR2 S25 MHUNTW 2,JBUDGET,JLINE 7 7G=L LDX 0 4 10 7GQ= LDX 4 JPATTERN(2) 18 7H9W BNG 0 S14 [J. IF ALLOWANCE COMMAND 9 7HPG S3 MFREE CPB,CUNI 7 7J96 PARAPASS 10 7JNQ HUNT 2,CPB,CUNI 9 7K8B NGX 0 ANUM(2) 10 7KN2 ANDX 4 MGCLASS(1) 17 7L7L BXU 4 MGPOR(1),S5 [J. UNLESS PRIVILEGE 7 7LM= ADN 0 4 19 7M6W BNZ 0 QR5 [J. IF NOT 4 CH IN PARAMETER 7 7MLG LDN 4 1 9 7N66 LDX 0 APARA(2) 16 7NKQ BXE 0 XGIVE(1),S4 [J IF GIVE X4=1 7 7P5B LDN 4 0 18 7PK2 BXU 0 XTAKE(1),QR5 [J. IF NOT GIVE OR TAKE 9 7Q4L S4 MFREE CPB,CUNI 11 7QJ= SETNCORE 15,2,ADATA,CSTORE 8 7R3W ADN 2 1+A1 7 7RHG LDX 1 2 7 7S36 SBN 1 1 8 7SGQ STOZ 0(1) 8 7T2B MOVE 1 14 8 7TG2 SBN 2 A1+1 10 7T_L STO 4 UCHANGE(2) 11 7WF= MHUNTW 1,JBUDGET,JLINE 10 7WYW LDX 4 JPATTERN(1) 9 7XDG STO 4 UTYPE(2) 8 7XY6 BRN S11 8 7YCQ S5 BPZ 0 QR4 7 7YXB CHNUMCON 10 7_C2 TESTREP2 CHNUMERR,QR9 11 7_WL MHUNTW 1,CPAR,GNUMCON 9 82B= LDX 4 A1+1(1) 7 82TW FREECORE 1 8 83*G BRN S4 18 83T6 S6 BNZ 0 S8 [J. UNLESS NULL PARAMETER 9 84#Q MFREE CPB,CUNI 20 84SB BPZ 5 QR3 [J. UNLESS BUDGETQVERY COMMAND 11 85#2 S7 SETNCORE 3,2,FILE,ADICT 7 85RL CJOBLOCK 1 9 86?= LDX 2 FPTR(2) 8 86QW ADN 1 JUSER 8 87=G ADN 2 A1 7 87Q6 MOVE 1 3 8 889Q BRN S10 20 88PB S8 BNG 0 S9 [J. UNLESS NONEXISTANT PARAMETER 9 8992 MFREE CPB,CUNI 21 89NL BPZ 6 QR2 [J. UNLESS BUDGET TYPE ALREADY FOUND 19 8=8= BNG 5 S7 [J. IF BUDGETQUERY COMMAND 19 8=MW BRN QR3 [ERROR: USERNAME PARAMETER MISSING 9 8?7G S9 LDCH 0 APARA(1) 8 8?M6 SBN 0 #12 20 8?TB ... BNZ 0 S2 [J UNLESS 1ST CHAR IS A COLON 6 8#3L ...#UNSET FTS1 4 8#9W ...#SKI 4 8#D6 ...( 20 8#LB USERNORM ATYPE(1) [B15-23 HOLD THE PARAMETER NUMBER 10 8*62 TESTREP2 USERFORM,QR8 4 8*6S ...) 6 8*7L ...#UNSET FTS1 4 8*8D ...( 10 8*9= ... NAMETOP 1,FILE,FNAME 14 8*=4 ... FNORM 1 [USERNAME 10 8*=W ... TESTREP2 NAMEFORM,QR6A 10 8*?N ... MHUNT 1,FILE,FNAME 10 8*#G ... NAMETOP 1,CPB,CUNI 10 8**# ... MHUNT 1,FILE,FABSNB 14 8*B6 ... LDX 0 A1(1) [FABSNB 14 8*BY ... SBN 0 4 [MUST BE 15 8*CQ ... BNZ 0 QR6A [4 WORDS LONG 11 8*DJ ... SETNCORE 3,2,FILE,ADICT 10 8*FB ... MHUNT 1,FILE,FABSNB 15 8*G8 ... ADN 1 A1+1 [MOVE USER 15 8*H2 ... ADN 2 A1 [NAME INTO 14 8*HS ... MOVE 1 3 [ADICT 4 8*JL ...) 18 8*KL S10 ORX 7 GSIGN [SET'USE-5AME FOUND' MARK 16 8B5= S11 BCT 3 S1 [LOOP ON COUNT 19 8BJW BNG 5 S13 [J. IF BUDGETQUERY COMMAND 10 8C4G MHUNTW 1,FILE,ADICT 11 8CJ6 MHUNTW 2,ADATA,CSTORE 8 8D3Q ADN 1 A1 9 8DHB ADN 2 UNAMED 7 8F32 MOVE 1 3 11 8FGL S12 SETNCORE 3,2,FILE,ADICT 7 8G2= CJOBLOCK 1 9 8GFW LDX 2 FPTR(2) 8 8G_G ADN 1 JUSER 8 8HF6 ADN 2 A1 7 8HYQ MOVE 1 3 11 8JDB MHUNTW 2,ADATA,CSTORE 9 8JY2 ADN 2 UCURRENT 7 8KCL MOVE 1 3 11 8KX= SETNCORE 3,2,FILE,ADICT 11 8LBW MHUNTW 1,ADATA,CSTORE 8 8LWG ADN 2 A1 9 8MB6 ADN 1 UNAMED 7 8MTQ MOVE 1 3 18 8N2Y ...S13 SETNCORE 10,2,FILE,FABSNB [LEAVE :MASTER'S FABSNB 17 8N86 ... ADN 2 A1 [FOR LATER SEGMENTS 8 8N*# ... ADN 1 NB 8 8NGG ... MOVE 1 10 7 8NMN ... UPPLUS 2 7 8NT2 S14 LDX 0 4 10 8P#L ANDX 0 MGCLASS(1) 10 8PS= BXU 0 MGTOR(1),QR6 8 8Q?W BRN S3 8 8QRG QR1 SMO FX1 9 8R?6 LDX 6 XJBUDTYPE 8 8RQQ BRN QRA 8 8S=B QR3 LDX 1 FX1 9 8SQ2 LDX 6 XJUSNA(1) 8 8T9L BRN QRA 8 8TP= QR4 SMO FX1 9 8W8W LDX 6 XJBUDCHAN 8 8WNG QRA SMO FX1 9 8X86 LDX 5 XJPARMIS 8 8XMQ QRA1 ERRORX 5,6 8 8Y7B BRN QR 10 8YM2 QR2 LDX 5 XJNOPAR(1) 8 8_6L BRN QRB 10 8_L= QR5 LDX 5 XJZPRIV(1) 8 925W BRN QRB 9 92KG QR6 LDX 5 XERB11(1) 8 9356 BRN QRB 8 9393 ...QR6A SMO FX1 9 93#Y ... LDX 5 XUSERF 8 93DT ... BRN QRB 7 93JQ QR7 CLOSETOP 9 944B LDX 5 XERB1(1) 7 94J2 QRB ERRORX 5 4 953L QR8 4 95H= QR9 9 962W QR TRACE 1,ERRR 7 96GG UPPLUS 1 6 9726 SBREAK UP 11 97FQ QR10 ERROR ERSYSCLUDG,FDIC 8 97_B BRN QR 8 98F2 # BUDGCON MACRO 21 98YL # THIS ROUTINE OPENS THE DICT.(READ),GETS THE BIT PATTERN FOR THE 21 99D= # CHAR. STRING IN THE FIRST CPB/CUNI BLOCK IN THE CHAIN, AND CLOSES 15 99XW # DICT. AGAIN . NOSUCH IF CHARS. IN ERROR. 6 9=CG QK12BUDGTWO 9 9=X6 MHUNT 3,CPB,CUNI 9 9?BQ LDX 0 ANUM(3) 8 9?WB BZE 0 U7A 8 9#B2 BNG 0 U7A 16 9#TL ANDN 0 #7777 [NO. OF CHARS. 7 9**= SBN 0 9 15 9*SW BPZ 0 U7A [MAX 8 CHS 9 9B#G LDX 4 APARA(3) 10 9BS6 LDX 5 APARA+1(3) 7 9C?Q ADN 0 4 8 9CRB BPZ 0 U1 20 9D?2 LDX 5 ACES [SPACES IN 2ND WD. IF <5 CHARS. 4 9DQL U1 11 9F== SETNCORE 10,3,FILE,FABSNB 8 9FPW LDN 2 NB(1) 8 9G9G ADN 3 A1 16 9GP6 MOVE 2 10 [FOR OPENING CICT 8 9H8Q OPEN U8,READ 9 9HNB TESTRPN2 OK,U8 10 9J82 MFREEW FILE,FABSNB 6 9JML STEP 9 9K7= #SKI K6BMACROS>99-99 4 9KLW ( 21 9L6G BNZ 3 U3 [THE FIRST RECORD SHOULD BE THE ONE 14 9LL6 U2 [WE WANT 9 9M5Q GEOERR 1,BUDGCON 4 9MKB U3 7 9N52 LDN 0 0 10 9NJL TXU 0 CUSER-A1(3) 10 9P4= TXU 0 CUSER+1-A1(3) 10 9PHW TXU 0 CUSER+2-A1(3) 8 9Q3G BCS U2 4 9QH6 ) 18 9R2Q LDX 0 IZCOUNT-A1(3) [NO. OF DESCRIPTION LINES 8 9RGB BZE 0 U5 4 9S22 U4 11 9SFL TXU 4 IZLIST+1-A1(3) 11 9S_= TXU 5 IZLIST+2-A1(3) 16 9TDW BCC U6 [J.IF CHARS. SAME 9 9TYG ADN 3 IZLINE 8 9WD6 BCT 0 U4 4 9WXQ U5 15 9XCB LDN 3 0 [NOT FOUND 8 9XX2 BRN U7 4 9YBL U6 15 9YW= LDX 3 IZLIST-A1(3) [BIT PATTERN 10 9_*W STO 3 ACOMMUNE1(2) 7 9_TG LDN 3 1 4 =2*6 U7 15 =2SQ CLOSETOP [DICTIONARY 17 =3#B BZE 3 U7A [J IF GICT NOT FOUND 7 =3S2 UPPLUS 1 4 =4?L U7A 9 =4R= #SKI K6BMACROS>99-99 9 =5=W TRACE 4,BDGNOSUC 5 =5QG UP 4 =6=6 U8 9 =6PQ GEOERR 1,BUDGBRK 10 =79B MENDAREA 50,K99BUDGTWO 4 =7P2 #END 8 ____ ...76223126000600000000