14 22FL ...#SEG BEXTSJ [L. BASU 10 22_= #LIS K0BEXTSJ>K0ALLGEO>0 9 23DW ... 8HBEXTSJ 12 23YG SEGENTRY K1BEXTSJ,QK1BEXTSJ 12 24D6 SEGENTRY K2BEXTSJ,QK2BEXTSJ 4 24XQ # 19 25CB # THIS CHAPTER PROCESSES THE BUDGET EXTRACODES REQUIRED FOR 19 25X2 # THE SYSTEM JOURNAL AND MAY BEGISSUED BY ANY OBJECT PROGRAM 20 26BL # RUNNING UNDER THE USER :MANAGER. IF THE OBJECT PROGRAM ISSUING 20 26W= # THE EXTRACODE IS RUNNING UNDER ANY OTHER USER, THE REPLY WORD 18 27*W # WILL BE SET NEGATIVE AND THE EXTRACODE FLAGGED ILLEGAL 13 27TG # THESE ARE PERI TYPE 60 EXTRACODES 20 28*6 # MODE #76 READS A DICTIONARY UPDATE RECORD TO THE CONTROL AREA 20 28SQ # MODE #77 UPDATES THE DICTIONARY ENTRIES OF POSSIBLY SEVERAL 10 29#B # USERS AT ONCE 21 29S2 # BOTH EXTRACODES ARE OBEYED IN A PROGRAM CONTROL ACTIVITY ALTHOUGH 21 2=?L # MOST OF THE PROCESSING IS DONE IN THE COMMAND PROCESSING ACTIVITY 17 2=R= # THE SEGMENT SHOULD NORMALLY BE ENTERED FROM OPCA 4 2?=W # 10 2?QG # GENERAL DEFINITIONS 7 2#=6 #DEF ZRECLEN=13 7 2#PQ #DEF ZLENGTH=17 12 2*9B # DEFINITIONS FOR JBUDGET/JEXTRA 7 2*P2 #DEF ZTYPEM=A1 9 2B8L #DEF ZREPLY=ZTYPEM+1 8 2BN= #DEF ZRES=ZREPLY+1 9 2C7W #DEF ZPROGNAME=ZRES+1 9 2CMG #DEF ZTIME=ZPROGNAME+2 8 2D76 #DEF ZDATE=ZTIME+1 11 2DLQ #DEF ZPAIRNO=ZPROGNAME+ZRECLEN 15 2F6B # DEFINITIONS FOR 6 WORD ENTRIES 7 2FL2 #DEF ZUSER=0 7 2G5L #DEF ZBTYPE=3 7 2GK= #DEF ZBUPDAMT=5 12 2H4W # PRESET DATA FOR FILE/FABSNB 8 2HJG NAMED +10 9 2J46 12HMASTER 10 2JHQ 12HDICTIONARY 8 2K3B +1 8 2KH2 +1 8 2L2L 4HB1 14 2LG= # PRESET CHARACTERS FOR UPDATE RECORD 9 2L_W UPDPSD 8H*UPDATE 15 2MFG # PRESET CHARACTERS TO VERIFY JOB USER NAME 13 2M_6 # ERROR MESSAGES FOR MONITORINGFILE 9 2NDQ ...XERB7 +ERB7A 9 2NYB XERNO +ERNOUSER 9 2PD2 ZBUDG 8HBUDGEXT 4 2PXL # 4 2QC= # 4 2QWW # 6 2RBG QK1BEXTSJ 13 2RW6 CHEKPRIV JOB,ZBUDG(1),RII,NOTOPEN 6 2S*Q QK2BEXTSJ 20 2STB LDX 3 EVENT2(2) [PICK UP ADDRESS OF CONTROL AREA 20 2T*2 # [RELATIVE TO OBJECT PROGRAM IN X3 20 2TSL N1 STO 3 AWORK1(2) [REMEMBER ADDRESS OF CONTROL AREA 20 2W#= CAPCA [CHANGE ACTIVITY FROM MCA TO PCA 19 2WRW # SET UP JBUDGET/JEXTRA TO HOLD THE CONTROL AREA 13 2X?G SETNCORE ZLENGTH,1,JBUDGET,JEXTRA 8 2XR6 LDN 7 A1 21 2Y=Q LDX 4 AWORK1(2) [PICK A(CONTROL AREA) REL TO OBJ PRO 20 2YQB LDN 5 ZLENGTH [PICK UP LENGTH OF CONTROL AREA 7 2_=2 LDN 3 0 21 2_PL N2 CALL 6 SRGWR [USE SUBROUTINE TO FIND OUT HOW MANY 21 329= # [WORDS ARE GRANTED BY GETWORD READ 21 32NW TESTREPNOT OK,R20 [J TO ILLEGAL ERROR ROUTINE IF NOT 18 338G MHUNTW 1,JBUDGET,JEXTRA [RE-HUNT JBUDGET/JEXTRA 20 33N6 N3 ADX 1 7 [MOVE ACCESSABLE PART OF CONTROL 10 347Q LDX 0 ACOMMUNE4(2) 8 34MB MOVE 0 0(3) 7 3572 TXU 5 3 8 35LL BCS N2 19 366= WORDFIN [TERMINATE GETWORD SEQUENCE 18 36KW [ [I E FREE DATA BLOCKS 18 375G MHUNTW 3,JBUDGET,JEXTRA [RE HUNT JBUDGET/JEXTRA 16 37K6 LDX 4 BSP16 [PICK UP #77777 15 384Q ANDX 4 ZTYPEM(3) [ISOLATE MODE 8 38JB SBN 4 #76 21 3942 BZE 4 RO1 [J IF READ I.E. MODE #76 EXTRACODE 15 39HL SBN 4 1 [IF MODE MODE 21 3=3= BNZ 4 RIM [NOT RECOGNIZE J TO ILL.ER ROUTINE 14 3=GW LDX 6 ZPAIRNO(3) [REMEMBER 8 3?2G LDN 7 256 7 3?G6 TXL 6 7 8 3?_Q BCS N32 7 3#FB FREECORE 3 8 3#_2 BRN RIC 4 3*DL N32 20 3*Y= STO 6 AWORK4(2) [NUMBER OF WORD PAIRS IN AWORK4 21 3BCW BNZ 6 N35 [J TO CALC. NO. OF WORD PAIRS REQD. 20 3BXG LDCT 7 #400 [INDICATE MODE#77 & NO WORD PAIRS 8 3CC6 BRN RMO 20 3CWQ N35 LDX 5 6 [CALCULATE NO. OF WORDS REQUIRED 17 3DBB ADX 5 5 [TO HOLD WORD PAIRS 18 3DW2 SWAPOUT [SWAPOUT OBJECT PROGRAM 20 3F*L SETUPCORE 5,6,ADATA,BUDGCAWP [SET UP BLOCK FOR C.A. WORD PAIRS 16 3FT= LDX 4 AWORK1(2) [ALIGN POINTER 17 3G#W ADN 4 ZLENGTH [AT FIRST WORD PAIR 8 3GSG LDN 7 A1 7 3H#6 LDN 3 0 21 3HRQ N4 CALL 6 SRGWR [FIND OUT NO. OF WDS READ ACCESSIBLE 9 3J?B TESTREPNOT OK,R15 11 3JR2 MHUNTW 1,ADATA,BUDGCAWP 7 3K=L N5 ADX 1 7 10 3KQ= LDX 0 ACOMMUNE4(2) 8 3L9W MOVE 0 0(3) 7 3LPG TXU 5 3 8 3M96 BCS N4 20 3MNQ # ROUTINE TO CALCULATEGCUMULATIVE SIZE OF DATA AREAS 16 3N8B # AND CHECK FOR OVERLAPPING DATA AREAS 19 3NN2 SBX 1 7 [RE-ALIGN POINTER AT START OF 16 3P7L # ADATA BUDGCAWP 10 3PM= LDX 3 ALOGLEN(1) 8 3Q6W ADN 3 17 20 3QLG STO 3 ACOMMUNE4(2) [REMEMBER SIZE OF CONTROL AREA 15 3R66 # +WORD PAIRS 18 3RKQ LDX 5 AWORK4(2) [SET COUNT OF WORD PAIRS 8 3S5B ADN 1 A1 7 3SK2 LDX 3 1 9 3T4L STO 1 AWORK2(2) 8 3TJ= LDX 7 0(1) 7 3W3W SBN 5 1 4 3WHG RC1 15 3WMC ... LDX 0 0(3) [CHECK DATA 8 3WPQ ... BZE 0 RIC 15 3WS5 ...RC1A SBN 0 6 [AREA SIZE 8 3WWD ... BNG 0 RIC 15 3WYR ... BNZ 0 RC1A [IS 6 WORDS 15 3X36 LDX 4 1(3) [SET X4=AI 20 3XGQ # CHECK DATA AREA DOES NOT OVERLAP WITH CONTROL AREA 19 3Y2B LDX 6 AWORK1(2) [PICK UP CONTROL AREA ADDRESS 7 3YG2 TXL 4 6 8 3Y_L BCS RCA1 7 3_F= TXU 4 6 8 3_YW BCC R15 10 42DG ADX 6 ACOMMUNE4(2) 7 42Y6 TXL 4 6 8 43CQ BCS R15 8 43XB BRN RCA2 4 44C2 RCA1 8 44WL SBX 6 0(3) 7 45B= TXL 6 4 8 45TW BCS R15 4 46*G RCA2 8 46T6 BZE 5 RMDT 7 47#Q TXU 1 3 18 47SB BCS RC2 [J IF NOT FIRST WORD PAIR 7 48#2 ADN 3 2 8 48RL BRN RC1 4 49?= RC2 15 49QW LDX 6 1(1) [SET X6=AR 15 4==G TXL 4 6 [ AI < AR ? 15 4=Q6 BCS RC3 [J IF AI < AR 15 4?9Q TXU 4 6 [ AI = AR ? 8 4?PB BCC R15 16 4#92 ADX 6 0(1) [SET X6 = AR +.XR 16 4#NL TXL 4 6 [ AI < AR + XR 8 4*8= BCS R15 21 4*MW BRN RC4 [J TO UPDATE SECOND MODIFIER - (R) 16 4B7G RC3 SBX 6 0(3) [SET X6 = AR - XI 16 4BM6 TXL 6 4 [ AR < AI + XI ? 20 4C6Q BCS R15 [J TO OVERLAPPING DATA AREAS E.R. 19 4CLB RC4 ADN 1 2 [UPDATE SECOND MODIFIER (R) 7 4D62 TXU 1 3 8 4DKL BCS RC2 19 4F5= # [WORD PAIRS CHECKED AGAINST 9 4FJW #SKIP K6BEXTSJ>599-599 4 4G4G ( 8 4GJ6 TRACE 7,BEXTDS 4 4H3Q ) 21 4HHB ADX 7 0(3) [UPDATE TOT NO. OF WDS IN DATA AREAS 18 4J32 ADN 3 2 [UPDATE FIRST MODIFIER 9 4JGL LDX 1 AWORK2(2) 21 4K2= BCT 5 RC1 [LOOP TILL ALL WORD PAIRS VERIFIED 19 4KFW # ROUTINE TO MOVE ALL THE DATA SPECIFIED BY THE WORD PAIRS 18 4K_G # INTO AN ADATA/BUDGDBLB BLOCK USING THE GETWORD SYSTEM 4 4LF6 RMDT 8 4LYQ LDX 5 BIT11 7 4MDB TXL 5 7 21 4MY2 BCC RMD [J IF CUMULATIVE SIZE OF DATA AREAS 15 4NCL # < 4095 WDS 11 4NX= MFREEW JBUDGET,JEXTRA 11 4PBW MFREEW ADATA,BUDGCAWP 7 4PWG WORDFIN 8 4QB6 BRN RII 4 4QTQ RMD 20 4R*B SETUPCORE 7,5,ADATA,BUDGDBLB [SET UP AN ADATA/BUDGDBLB BLOCK 8 4RT2 LDN 1 A1 8 4S#L LDN 7 A1 9 4SS= STO 1 AWORK2(2) 9 4T?W LDX 5 AWORK4(2) 7 4TRG LDN 3 0 4 4W?6 RMD1 11 4WQQ MHUNTW 1,ADATA,BUDGCAWP 9 4X=B ADX 1 AWORK2(2) 8 4XQ2 LDX 4 1(1) 9 4Y9L ... STO 5 AWORK4(2) 8 4YP= LDX 5 0(1) 4 4_8W RMD2 8 4_NG CALL 6 SRGWR 9 5286 TESTREPNOT OK,R10 11 52MQ MHUNTW 1,ADATA,BUDGDBLB 7 537B ADX 1 7 10 53M2 LDX 0 ACOMMUNE4(2) 9 546L STO 3 AWORK3(2) 8 54L= BZE 3 RMD3 5 555W RMD22 8 55KG LDN 6 512 7 5656 ... TXL 6 3 8 56JQ ... BCC RMD25 7 574B MOVE 0 0 8 57J2 ADN 1 512 8 583L ADN 0 512 8 58H= SBN 3 512 8 592W BRN RMD22 5 59GG RMD25 8 5=26 MOVE 0 0(3) 9 5=FQ LDX 3 AWORK3(2) 7 5=_B TXU 5 3 21 5?F2 BCS RMD2 [J IF NOT ALL WDS ACCESSED BY GETWD 4 5?YL RMD3 7 5#D= LDN 1 2 7 5#XW ADX 7 3 7 5*CG LDN 3 0 9 5*X6 ADS 1 AWORK2(2) 9 5BBQ ... LDX 5 AWORK4(2) 18 5BWB BCT 5 RMD1 [LOOP TO FETCH DATA AREAS 18 5CB2 # UNTIL ALL ARE EXHAUSTED 15 5CTL # DICTIONARY 11 5C_H ... MHUNTW 1,JBUDGET,JEXTRA 20 5D5D ... LDX 7 ZPAIRNO(1) [RE-SET AWORK4 TO CONTAIN COUNT 16 5D9* ... STO 7 AWORK4(2) [OF WORD PAIRS 20 5D*= MFREEW ADATA,BUDGCAWP [FREE BLOCK CONTAINING WORD PAIRS 19 5DSW WORDFIN [TERMINATE GETWORD SEQUENCE 19 5F#G # [I.E. FREE ANY BLOCKS SET UP 9 5FS6 #SKI K6BEXTSJ>599-599 4 5G?Q ( 20 5GRB TRACE 7,TR1 [TRACE POINTER IN ADATA/BUDGDBLB 8 5H?2 TRACE 6,TR2 4 5HQL ) 8 5J== BRN RMO 19 5JPW RO1 LDN 7 0 [SET MODE #76 INDICATOR IN X7 10 5K9G LDX 4 ZPROGNAME(3) 8 5KP6 BNZ 4 RMO 7 5L8Q FREECORE 3 8 5LNB BRN RII 4 5M82 RMO 19 5MML SETNCORE 10,3,FILE,FABSNB [SET UP FILE/FABSNB TO OPEN 15 5N7= # DICTIONARY 8 5NLW ADN 3 A1 9 5P6G LDN 2 NAMED(1) 8 5PL6 MOVE 2 10 7 5Q5Q PHOTO 6 18 5QKB OPEN RFF,GENERAL,CAREFUL [IN GENERAL,CAREFUL MODE 21 5R52 TESTREPNOT OK,RS [J IF REPLY NOT OK TO ERROR ROUTINE 9 5RJL TESTMOVE 6,MFO15 20 5S4= MHUNTW 3,FILE,FABSNB [RE-HUNT FILE/FABSNB IF NECESSARY 8 5SHW ADN 3 A1 5 5T3G MFO15 8 5TH6 SBN 3 A1 16 5W2Q FREECORE 3 [FREE FILE/FABSNB 21 5WGB BZE 7 MFO18 [J IF MODE #76 EXTRACODE PROCESSED 8 5X22 BNG 7 MFO18 20 5XFL READ [READ 1ST RECORD IN DICTIONARY 21 5X_= MHUNTW 3,FILE,FRB [GET POINTER TO FILE/FRB IMPLICITLY 17 5YDW # [SET UP BY READ MACRO 21 5YYG NAME 3,JBUDGET,JSTORE [RENAME UPDATE RECORD JBUDGET/JSTORE 11 5_D6 MFO18 MHUNTW 3,JBUDGET,JEXTRA 10 5_XQ LDX 6 ZPROGNAME(3) 8 62CB BZE 6 UPD2 5 62X2 MFO20 20 63BL READDICU ,6 [TRY AND LOCATE UPDATE RECORD IF 15 63W= # IT EXISTS 18 64*W TESTREPNOT OK,UPD1 [J IF NOT RECORD FOUND 21 64TG MHUNTW 3,FILE,ADICTENT [GET POINTER TO UPDATE RECORD IN X3 16 65*6 BZE 7 UPDIA [J IF MODE #76 9 65SQ NAME 3,FILE,FWB 10 66#B LDX 5 ALOGLEN(3) 9 66S2 ERN 5 ZRECLEN+4 20 67?L BZE 5 UP1 [J IF BLOCK LENGTH AS REQUIRED 16 67R= ALTLEND 3,ZRECLEN+4,FILE,FWB [ALTER SIZE AND 19 68=W MHUNTW 3,FILE,FWB [RELOCATE POINTER TO FILE/FWB 21 68QG UP1 CALL 4 SRMPD [MOVE IN RECORD FROM JBUDGET/JEXTRA 7 69=6 PHOTO 4 19 69PQ REPLACE [RE-WRITE DICTIONARY ENTRY 16 6=9B BRN UPCK1 [J TO CHECK REPLY 21 6=P2 UPD1 BZE 7 UPDIB [J IF MODE #76 EXTRACODE PROCESSED 18 6?8L SETNCORE ZRECLEN+4,3,FILE,FWB [SET UP A FILE/FWB BLOCK 8 6?N= CALL 4 SRMPD 15 6#7W # FOR RECORD 7 6#MG PHOTO 4 20 6*76 INSERT [INSERT NEW RECORD IN DICTIONARY 18 6*LQ UPCK1 TESTREP FILEFULL,RFF [J TO GEOERR IF FILEFULL 9 6B6B TESTMOVE 4,UPCK2 20 6BL2 MHUNTW 3,FILE,FWB [RE-HUNT FILE/FWB IF NECESSARY 8 6C5L ADN 3 A1+4 5 6CK= UPCK2 21 6D4W SBN 3 A1+4 [RE-ALIGN POINTER AT BLOCK BEGINNING 16 6DJG FREECORE 3 [FREE FILE/FWB 8 6F46 UPD2 SMO FX2 9 6FHQ LDX 4 AWORK4 20 6G3B BZE 4 TUPD1 [J IF NO WORK PAIRS & MODE #77 18 6GH2 MHUNTW 2,ADATA,BUDGDBLB [RE-HUNT ADATA/BUDGDBLB 10 6H2L LDX 4 ALOGLEN(2) 7 6HG= LDN 5 6 7 6H_W LDN 3 0 19 6JFG DVS 3 5 [SET X4=NO. OF 6 WORD ENTRIES 8 6J_6 LDX 2 FX2 8 6KDQ LDN 3 A1 20 6KYB STO 3 AWORK3(2) [SET POINTER IN ADATA/BUDGDBLB 8 6LD2 VBT1 SMO FX2 18 6LXL STO 4 AWORK4 [REMEMBER COUNT IN AWORK4 15 6MC= # ROUTINE TO VERIFY 6 WORD ENTRY 18 6MWW MHUNTW 2,ADATA,BUDGDBLB [RE-LOCATE ADATA/BUDGDBLB 8 6NBG SMO FX2 21 6NW6 ADX 2 AWORK3 [ALIGN POINTER AT CORRECT 6 WD ENTRY 21 6P*Q LDX 5 ZBTYPE(2) [PICK UP BUDGET TYPE OF NXT 6WD ENT 19 6PTB BNG 5 VBT2 [J IF STANDARD BUDGET ENTRY 10 6Q*2 TXU 5 ZBTYPE+1(2) 20 6QSL BCS ROIF [J IF 6 WORD ENTRY NOT RECOGNIZED 7 6R#= SBN 5 1 21 6RRW BZE 5 VBT5 [J TO CHECK IF FILE/ADICTENT EXISTS 18 6S?G ROIF MHUNTW 2,JBUDGET,JEXTRA [RE-HUNT JBUDGET/JEXTRA 8 6SR6 ROIF1 LDCT 5 #400 9 6T=Q STO 5 ZREPLY(2) 8 6TQB BRN TUPC 19 6W=2 # CHECK IF BUDGET AMONG PERMITTED TYPES IN JBUDGET/JSTORE 11 6WPL VBT2 MHUNTW 3,JBUDGET,JSTORE 21 6X9= LDX 0 IZCOUNT(3) [SET COUNT OF PERMITTED BUDGET TYPES 20 6XNW LDX 5 3(2) [PICK UP 6 WORD ENTRY BUDGET TYPE 8 6Y8G LDX 6 4(2) 4 6YN6 VBT3 20 6_7Q TXU 5 IZCOUNT+3(3) [COMPARE BUDGET TYPE WITH NEXT 20 6_MB TXU 6 IZCOUNT+4(3) [PERMITTED TYPE IN JBUDGET/JSTORE 8 7272 BCC VBT4 20 72LL ADN 3 IZLINE [UPDATE POINTER IN JBUDGET/JSTORE 21 736= BCT 0 VBT3 [LOOP TILL ALL BUDGET TYPES CHECKED 18 73KW BRN ROIF [J IF INVALID BUDGET TYPE 4 745G VBT4 10 74K6 LDX 6 IZCOUNT+2(3) 8 754Q SMO FX2 16 75JB STO 6 AWORK2 [AND IN AWORK2 4 7642 VBT5 10 76HL HUNTW 3,FILE,ADICTENT 21 773= BNG 3 SUFAD [J IF FILE/ADICTENT DOES NOT EXIST 9 77GW LDX 4 CUSER(3) 19 782G LDX 5 CUSER+1(3) [CHECK IF FILE/ADICTENT BLOCK 10 78G6 LDX 7 CUSER+2(3) 9 78_Q TXU 4 ZUSER(2) 18 79FB TXU 5 ZUSER+1(2) [ALREADY SET UP FOR USER 10 79_2 TXU 7 ZUSER+2(2) 8 7=DL BCS VBT6 9 7=GJ ... LDX 0 CPSEU(3) 8 7=JG ... BPZ 0 VBT5A 9 7=LD ... SETREP PSEUDO 8 7=NB ... LDX 2 FX2 8 7=Q# ... LDX 1 FX1 8 7=S= ... BRN RERU 5 7=W8 ...VBT5A 9 7=Y= LDX 4 ZBTYPE(2) 21 7?CW BNG 4 PBAL [J TO UPDATE BUDGET USING EXISTING 17 7?XG # FILE/ADICTENT BLOCK 18 7#C6 VBT6 CALL 4 RP [REPLACE UPDATE RECORD 5 7#WQ SUFAD 11 7*BB SETNCORE 3,3,FILE,ADICT 20 7*W2 MHUNTW 2,ADATA,BUDGDBLB [RE-HUNT DATA AREAS IF NECESSARY 8 7B*L SMO FX2 20 7BT= ADX 2 AWORK3 [RESET POINTER IN ADATA/BUDGDBLB 5 7C#W SUFAD1 8 7CSG ADN 3 A1 21 7D#6 MOVE 2 3 [MOVE IN USER NAME TO FILE/ADICT BLK 18 7DRQ LDX 4 3(2) [WAS B0 SET IN WORD 3? 21 7F?B BNG 4 SEAR1 [J IF STANDARD 6 WORD BUDGET ENTRY 10 7FR2 DICTJOB 5,ZBUPDAMT(2) 18 7G=L TESTREP2 OK,TUPC,NOTENUF,ROIF,NOUSER,RERU,UNJOB,RERU 8 7GQ= BRN TUPC 7 7H9W SEAR1 READDICT 9 7HPG TESTREPNOT OK,RERU 19 7J96 MHUNTW 3,FILE,ADICTENT [RE-HUNT FILE/ADICTENT BLOCK 9 7JNQ LDX 4 CPSEU(3) 19 7K8B BNG 4 RERU [J TO E.R. FOR INVALID USER 5 7KN2 PBAL1 21 7L7L MHUNTW 2,ADATA,BUDGDBLB [RE-HUNT ADATA/BUDGDBLB IF NECESSARY 8 7LM= SMO FX2 19 7M6W ADX 2 AWORK3 [RESET POINTER WITHIN BLOCK 4 7MLG PBAL 8 7N66 SMO FX2 9 7NKQ LDX 7 AWORK2 19 7P5B LDX 5 ZBUPDAMT(2) [PICK UP AMOUNT FOR UPDATING 8 7PK2 BUDGINCX 7,5 10 7Q4L TESTREP ODRAWN,ROD 8 7QJ= TUPC SMO FX2 9 7R3W LDX 4 AWORK4 7 7RHG LDN 5 6 8 7S36 SMO FX2 9 7SGQ ADS 5 AWORK3 20 7T2B BCT 4 VBT1 [LOOP UNTIL ALL ENTRIES UPDATED 10 7TG2 HUNTW 3,FILE,ADICTENT 8 7T_L BNG 3 TUP2 19 7WF= TUP1 CALL 4 RP [REPLACE RECORD IN DICTIONARY 4 7WYW TUP2 16 7XDG MFREEW ADATA,BUDGDBLB [FREE DATA AREAS 19 7XY6 MFREEW JBUDGET,JSTORE [FREE BUDGET DESCRIPTION LIST 20 7YCQ TUPD1 LDN 5 0 [SET X5=0 TO INDICATE ONLY REP WD 19 7YXB TCL CLOSE [CLOSE THE MASTER DICTIONARY 6 7_4J ...#UNSET FTS1 17 7_9Q ... DICTJL [UPDATE JOBLIST FILES 19 7_C2 LDX 4 AWORK1(2) [GET ADDRESS OF CONTROL AREA 9 7_WL ADN 4 ZREPLY-A1 12 82B= ... GETWORD 4,2,WRITE,,,XGWBRKIN 9 82TW TESTREPNOT OK,R20 11 83*G MHUNTW 3,JBUDGET,JEXTRA 9 83T6 LDX 7 ZREPLY(3) 8 84#Q STO 7 0(2) 8 84SB BZE 5 WFN 7 85#2 ADN 3 2 7 85RL ADN 4 3 9 86?= LDN 6 ZRECLEN-1 7 86QW LDN 5 0 8 87=G LDN 7 A1+4 21 87Q6 WRU1 ADX 7 5 [UPDATE POINTER WITHIN JBUDGET/JEXTR 21 87_Y ... ADX 4 5 [UPDATE POINTER TO AREA TO BE ACCSD 13 889Q ... GETWORD 4,2,WRITE,5,6,XGWBRKIN 9 88PB TESTREPNOT OK,R20 7 8992 TXL 6 5 8 89NL BCC WRU2 7 8=8= LDX 5 6 4 8=MW WRU2 7 8?7G SBX 6 5 11 8?M6 MHUNTW 1,JBUDGET,JEXTRA 21 8#6Q ADX 1 7 [RESET POINTER WITHIN JBUDGET/JEXTRA 7 8#LB SMO 5 7 8*62 MOVE 1 0 8 8*KL BNZ 6 WRU1 7 8B5= SBX 1 7 20 8BJW LDX 3 1 [RESET X3 TO BEGINNING OF BLOCK 4 8C4G WFN 7 8CJ6 PHOTO 4 21 8D3Q WORDFIN [TERMINATE GETWORD (WRITE) SEQUENCES 9 8DHB TESTMOVE 4,WFN1 11 8F32 MHUNTW 3,JBUDGET,JEXTRA 7 8FGL WFN1 FREECORE 3 18 8G2= RUNPROG [RESTART OBJECT PROGRAM 10 8GFW # END OF MAIN PROGRAM 5 8G_G #PAGE 8 8HF6 # SUBROUTINES 11 8HYQ UPDIA MHUNTW 2,JBUDGET,JEXTRA 10 8JDB STOZ ZPAIRNO(2) 9 8JY2 STOZ ZREPLY(2) 9 8KCL ADN 2 ZPROGNAME 7 8KX= LDX 4 2 17 8LBW ADN 3 CUSER+2 [SKIP OVER *UPDATE 20 8LWG MOVE 3 ZRECLEN [MOVE RECORD INTO JBUDGET/JEXTRA 10 8MB6 MFREEW FILE,ADICTENT 16 8MTQ LDN 5 1 [SET INDICATOR 16 8N*B # RECORD TO BE WRITTENPTO CONTROL AREA 8 8NT2 BRN TCL 11 8P#L UPDIB MHUNTW 3,JBUDGET,JEXTRA 8 8PS= LDCT 4 #400 7 8Q?W ADN 4 1 18 8QRG STO 4 ZREPLY(3) [SET REPLY WD NEGATIVE 19 8R?6 LDN 5 0 [REPLY WD ONLY TO BE WRITTEN 8 8RQQ BRN TUPD1 12 8S=B # SUBROUTINE TO DO GETWORD READS 8 8SQ2 SRGWR SBX 6 FX1 7 8T9L ADX 7 3 20 8TP= SBX 5 3 [SUBTRACT NO. ALREADY ACCESSED 12 8W8W ... GETWORD 4,0,READ,3,5,XGWBRKIN 10 8WNG STO 0 ACOMMUNE4(2) 7 8X86 ADX 4 3 7 8XMQ TXL 3 5 8 8Y7B BCS SGWR1 7 8YM2 LDX 3 5 5 8_6L SGWR1 16 8_L= ADX 6 FX1 [REDATUMISE LINK 7 925W EXIT 6 0 20 92KG # SUBROUTINE TO COPY BUDGET UPDATE RECORD FROM JBUDGET/JEXTRA 10 9356 # INTO FILE/FWB BLOCK 11 93JQ SRMPD MHUNTW 2,JBUDGET,JEXTRA 9 944B LDN 6 ZRECLEN+4 8 94J2 STO 6 A1(3) 19 953L LDX 6 UPDPSD(1) [MOVE IN PRESET CHARACTERS TO 16 95H= LDX 5 UPDPSD+1(1) [UPDATE RECORD 9 962W STO 6 CUSER(3) 10 96GG STO 5 CUSER+1(3) 7 9726 LDN 5 2 9 97FQ STO 5 CNEWZ(3) 8 97_B LDX 5 EDATE 9 98F2 STO 5 ZDATE(2) 9 98YL LDX 5 CLEANCT 8 99D= LDN 6 1000 7 99XW MPY 5 6 8 9=CG LDN 7 K9 7 9=X6 DVR 5 7 9 9?BQ STO 6 ZTIME(2) 9 9?WB ADN 3 CUSER+2 9 9#B2 ADN 2 ZPROGNAME 18 9#TL MOVE 2 ZRECLEN [MOVE IN UPDATE RECORD 7 9**= EXIT 4 0 4 9*SW # 21 9B#G # SUBROUTINE TO REPLACE BUDGET UPDATE RECORD IN DICTIONARY 4 9BS6 # 8 9C?Q RP SBX 4 FX1 10 9CRB MHUNTW 3,FILE,ADICTENT 7 9CSC ...#SKI JWPHASE2 4 9CTD ...( 11 9CWF ... JBC RPNCH,3,BMONCS 9 9CXG ... BC 3,BMONCS 9 9CYH ... BUDGUSEN GMONEY 12 9C_J ... MHUNTW 3,JBUDGET,JBUDGUSER 11 9D2K ... MHUNTW 2,FILE,ADICTENT 10 9D3L ... LDX 7 JALLOWED(3) 10 9D4M ... SBX 7 JCONSUMED(3) 11 9D5N ... DICTWELL CUSER(2),MONEY,7 11 9D6P ... MFREEW JBUDGET,JBUDGUSER 11 9D7Q ... MHUNTW 3,FILE,ADICTENT 5 9D8R ...RPNCH 4 9D9S ...) 9 9D?2 NAME 3,FILE,FWB 7 9DQL PHOTO 7 19 9F== REPLACE [REPLACE THE UPDATE RECORD 10 9FPW TESTREP FILEFULL,RFF 8 9G9G TESTMOVE 7,RP1 20 9GP6 MHUNTW 3,FILE,FWB [RE-HUNT FILE/FWB IF NECESSARY 16 9H8Q RP1 FREECORE 3 [FREE FILE/FWB 18 9HNB ADX 4 FX1 [REDATUMISE CHAPTER LINK 7 9J82 EXIT 4 0 5 9JML #PAGE 11 9K7= # ERROR ROUTINES 13 9KLW # ILLEGAL ERROR ROUTINES 17 9L6G # A UNSUCCESSFUL GETWORDFREAD ERROR ROUTINE 17 9LL6 # B ERROR ROUTINE FOR OVERLAPPING DATA AREAS 11 9M5Q R10 MFREEW ADATA,BUDGDBLB 11 9MKB R15 MFREEW ADATA,BUDGCAWP 11 9N52 R20 MFREEW JBUDGET,JEXTRA 7 9NJL PICKREP 7 7 9P4= WORDFIN 7 9PHW PUTREP2 7 10 9Q3G TESTREP NOCORE,RGNC 10 9QH6 TESTREP RESVIOL,RVIO 9 9R2Q ILLEGAL OVERLAP 9 9RGB RGNC GEOERR 0,NOCORE 9 9S22 RVIO ILLEGAL RESVIOL 16 9SFL # C ERROR ROUTINE FOR UNRECOGNIZED MODE 10 9S_= RIM MFREEW JBUDGET,JEXTRA 9 9TDW ILLEGAL MNOTREC 4 9TYG RII 7 9WD6 ILLEGAL 4 9WXQ RIC 8 9XCB ILLEGAL COUNT 13 9XX2 # GEOERRS WHEN OPENING DICTIONARY 9 9YBL RFF GEOERR 0,FILEFULL 9 9YW= RS GEOERR 0,BUDGBRK 17 9_*W RERU [ERROR IN USER NAME 11 9_TG SETNCORE 8,4,ADATA,CSTORE 8 =2*6 ADN 4 A1 11 =2SQ MHUNTW 3,ADATA,BUDGDBLB 17 =3#B ADX 3 AWORK3(2) [POINTER TO USER NAME 7 =3S2 MOVE 3 3 9 =4?L LDX 6 XERNO(1) 10 =4R= TESTREP2 NOUSER,RERU1 9 =5=W LDX 6 XERB7(1) 8 =6=6 LDN 5 12 11 =6PQ OUTPARAM 5,A1,ADATA,CSTORE 7 =79B ...RERU1 ERRORX 6 11 =7P2 MHUNTW 2,JBUDGET,JEXTRA 8 =88L LDCT 5 #400 9 =8N= STO 5 ZREPLY(2) 8 =97W BRN ROD1 19 =9MG ROD [E. R. FOR OVERDRAWN BUDGET 4 ==76 # 11 ==LQ SETNCORE 5,4,ADATA,CSTORE 10 =?6B LDX 7 ACOMMUNE3(2) 11 =?L2 MHUNTW 3,ADATA,BUDGDBLB 21 =#5L ADX 3 AWORK3(2) [RE-ALIGN POINTER AT CORRECT 6 WORDS 8 =#K= ADN 4 A1 21 =*4W MOVE 3 5 [MOVE IN USER NAME AND BUDGET TYPE 7 =*JG LDN 5 9 7 =B46 OUTBLOCK 5 8 =BHQ LDN 5 12 19 =C3B OUTPARAM 5,A1,ADATA,CSTORE [SET UP USER NAME PARAMETER 7 =CH2 LDN 5 8 19 =D2L OUTPARAM 5,A1+3,ADATA,CSTORE [SET UP BUDGET TYPE PARAMETER 7 =DG= NGX 7 7 21 =D_W OUTNUM 7,0 [SET UP OVERDRAWN AMOUNT PARAMETER. 20 =FFG MONOUT ERBOK5 [OUTPUT OVERDRAWN BUDGET MESSAGE 4 =F_6 ROD1 10 =GDQ MFREEW ADATA,CSTORE 21 =GYB BRN TUPC [J TO CHECK IF ANY MORE 6 WD ENTRIES 5 =H4? ...XGWBRKIN 7 =H88 ... WORDFIN 7 =H#5 ... PROGBRKIN 12 =HD2 MENDAREA 1023-0?,K99BEXTSJ 4 =HXL #END 8 ____ ...57073627000500000000