Show pageBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LOAD60)}} ====== LOAD60 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEND|ALTLEND]], [[george:macro:BXGE|BXGE]], [[george:macro:CHECKA|CHECKA]], [[george:macro:CHECKB|CHECKB]], [[george:macro:CLEAR|CLEAR]], [[george:macro:COOR1|COOR1]], [[george:macro:DCA|DCA]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FINMOVE|FINMOVE]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FSUM|FSUM]], [[george:macro:GPERI|GPERI]], [[george:macro:HUNT2|HUNT2]], [[george:macro:LOCKC|LOCKC]], [[george:macro:MAGREAD|MAGREAD]], [[george:macro:MAGSTEP|MAGSTEP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:REPEAT|REPEAT]], [[george:macro:RESTART|RESTART]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:T|T]], [[george:macro:TRACE|TRACE]], [[george:macro:UNLOCK|UNLOCK]], [[george:macro:VFREEW|VFREEW]], [[george:macro:VSKIP|VSKIP]] <code - LOAD60.txt>22FL SEG LOAD,60,RUTH PORTER 22^= # 23DW # 23YG SEGENTRY K1LOAD,XENT1 24D6 SEGENTRY K2LOAD,XENT2 24XQ # 25CB #DEF T=0 25X2 #DEF XLDEXA=EXTPS+4 26BL #DEF YCOUNT=EXTPS [HOLDS BLOCK COUNT 26W= #DEF WCHECKSUM=AWORK1 27*W #SKIP G4 27TG #DEF XQUOTA=AWORK2 [HOLDS INDIC OF PAGES TO BE LOCKED 28*6 [IN CORE 28SQ # 29#B N7 7 29S2 N513 513 2=?L #SKI G4 2=R= XMODE #40000 [ADDITIVE MODE FOR PERI INTO OBJ PROG 2?=W # 2?QG # NAMES OF ERROR MASSAGES 2#=6 WRBLK +JWRBLK 2#PQ NOENT +JNOENT 2*9B RINFF +JINFF 2*P2 WERRES +GRESLL 2B8L RCHER +JCHER 2BN= # 2C7W # 2CMG # 2D76 # S/R TO TEST REPLY WORD AFTER MT PERI. DOESNOT COORDINATE 2DLQ [ LINK X6 2F6B [ X2 PTS TO ACT BLOCK 2FL2 RESTARTMT 2G5L # A0,2 ARE IMPOSSIBLE.B3 IS A TAPE FAILURE. B4 IS A TAPE MARK - WRONG FO 2GK= # IGNORE B1 - LONG BLOCK 2H4W LDCT 0 #560 2HJG ANDX 0 CPRW1(2) 2J46 BNZ 0 XREADFAIL 2JHQ EXIT 6 0 2K3B # 2KH2 # 2L2L # 2LG= # ENTRY FROM LDSTART IF 2ND BLOCK WAS NOTR/S - MT ONLY 2L^W XENT2 2MFG #SKIP G4 2M^6 STOZ XQUOTA(2) [INIT'LOCKED PAGES'INDICATOR 2NDQ MHUNTW 3,FILE,FRB 2NYB BRN OFFMTRED1 2PD2 # 2PXL # 2QC= # 2QWW XENT1 2RBG #SKIP G4 2RW6 STOZ XQUOTA(2) [INIT'LOCKED PAGES'INDICATOR 2S*Q # 2STB # 2T*2 # 2TSL NEXTREC 2W#= LDX 2 FX2 2WRW # 2X?G # THE BLOCK COUNT IS UPDATED IMMEDIATELY BEFORE READING THE NEXT SPECIFI 2XR6 LDN 0 1 2Y=Q ADS 0 YCOUNT(2) [UPDATE COUNT 2YQB # FIRST SELECT ROUTINE FIR READING SPECIFIER BLK ACC TO TYPE OF FILE HOL 2^=2 # PROGRAM 2^PL LDCT 0 #420 329= ANDX 0 XLDEXA(2) 32NW BNG 0 ONLINE [ONLINE PERIPHERAL 338G BNZ 0 OFFMT [MAG TAPE 33N6 VSKIP ,1 347Q BZE 3 XEOF [JUMP IF EOF 34MB SBN 3 1 3572 BZE 3 XEOF [JUMP IF EOF 35LL ADN 3 1 366= LDEX 0 0(3) [REC HEADER 36KW SBN 0 2 375G BZE 0 XSPACES [ERROR IF BLANK CARDS 37K6 ADN 3 2 [X3 -> TO START OF REC 384Q BRN TESTSPEC 38JB OFFMT 3942 VFREEW FILE,FRB 39HL LDN 7 20 [MAX REC SIZE 3=3= MAGREAD XEOF,XTM,OFFMTRED,7 3=GW OFFMTRED 3?2G MHUNTW 3,FILE,FRRB 3?G6 NAME 3,FILE,FRB [MAKE THIS CASE LOOK LIKE REST 3?^Q OFFMTRED1 3#FB ADN 3 A1 [X3 -> TO START OF REC 3#^2 BRN TESTSPEC 3*DL ONLINE 3*Y= REPEAT 3BCW CALL 1 ZFRB 3BXG LOCKC 2,ZFRB 3CC6 MHUNTW 3,FILE,FRB 3CWQ LDN 0 A1(3) 3DBB DCA ,STO,0,CTSA 3DW2 LOCKC FX2,ZCPA 3F*L GPERI ,2 3FT= COOR1 3G#W UNLOCK 2 3GSG MHUNTW 3,FILE,FRB 3H#6 UNLOCK 3 [BUFFER 3HRQ LDCT 0 #20 3J?B ANDX 0 XLDEXA(2) 3JR2 BZE 0 REST [SLOW PERIPHERAL 3K=L CALL 6 RESTARTMT 3KQ= BRN READOK 3L9W REST 3LPG RESTART XBRKIN,XCANTDO,REPEAT 3M96 MHUNTW 3,FILE,FRB 3MNQ READOK 3N8B ADN 3 A1 [X3 -> TO START OF REC 3NN2 TESTSPEC 3P7L # COMMON ROUTINE FOR CHECKING SPEC BLK AND BRANCHING TOROUTINE APPROPRIA 3PM= # TO BLK TYPE 3Q6W LDCH 0 0(3) [BLOCK SPECIFIER 3QLG SBN 0 #73 3R66 BNZ 0 XLEFTBRACK 3RKQ LDX 5 0(3) 3S5B LDCH 6 5 [BLOCK TYPE 3SK2 #SKI T 3T4L TRACE 6,TYPE 3TJ= BXGE 6 N7(1),XBLOCKTYPE 3W3W SRL 5 12 3WHG ANDN 5 #77 [REC LENGTH IN X5 3X36 LDX 0 3 3XGQ SMO 5 3Y2B SUM 7 0 3YG2 BNZ 7 XCHECKSUM [CHECKSUM ERROR IN SPECEFIER BLOCK 3Y^L SMO 6 3^F= BRN TABTYP 3^YW TABTYP 42DG BRN TYPE0 42Y6 BRN XTYPE1 43CQ BRN TYPE2 43XB BRN TYPE3 44C2 BRN TYPE4 44WL BRN TYPE5 45B= BRN TYPE6 45TW TYPE0 46*G LDX 0 5 46T6 SBN 0 4 47#Q BNG 0 XRECSIZE [<4 47SB SBN 0 17 48#2 BPZ 0 XRECSIZE [>20 48RL SBN 5 3 [NO OF WDS OF DATA 49?= LDX 4 1(3) [PROGRAM ADDRES 49QW ADN 3 2 [START OF DATA 4==G FPCACA 2 4=Q6 CHECKA 4,5,XRESV,2,W,WCOOR,,2 4?9Q MOVE 4?PB FINMOVE 2,4,3,5,HLOCK1,2 4#92 #SKIP G3 4#NL BRN NEXTREC 4*8= #SKIP G4 4*MW ( 4B7G BRN XLOCK 4BM6 WCOOR 4C6Q LDCT 3 #420 4CLB ANDX 3 XLDEXA(2) 4D62 BNZ 3 WCOOR1 [NOT SLOW OFFLINE PERIPH 4DKL STEPAGAIN 4F5= ADN 3 4 4FJW BRN WCOORX 4G4G WCOOR1 4GJ6 MHUNTW 3,FILE,FRB 4H3Q ADN 3 A1+2 4HHB WCOORX 4J32 FPCACA 2 4JGL BRN MOVE 4K2= ) 4KFW TYPE2 4K^G TYPE3 4LF6 TYPE4 4LYQ SBN 5 2 4MDB BNG 5 XRECSIZE [<2 4MY2 SBN 5 3 4NCL BPZ 5 XRECSIZE [>5 4NX= LDCT 0 #420 4PBW ANDX 0 XLDEXA(2) 4PWG BNZ 0 YENTRY [NOT STOW OFFLINE PERIPH 4QB6 READAGAIN 4QTQ MHUNTW 3,FILE,FRB 4R*B LDN 2 A1+2(3) 4RT2 ADN 3 A1 4S#L MOVE 2 4 4SS= YENTRY 4T?W ACROSS LOADFIN,1 4TRG TYPE5 4W?6 SBN 5 5 4WQQ BNZ 5 XRECSIZE 4X=B LDCT 0 #20 4XQ2 ANDX 0 XLDEXA(2) 4Y9L BZE 0 XTYPE5 [ILLEGAL IF NOT MT 4YP= LDX 4 1(3) [PROGRAM ADDRE2S 4^8W LDX 5 2(3) [LENGTH OF DATA 4^NG BXGE 5 N513(1),XDATASIZE [ERROR IF MORE THAN 512 WDS 5286 LDX 0 3(3) [CHECKSUM OF TYPE 5 DATA 52MQ STO 0 WCHECKSUM(2) 537B FPCACA 2 53M2 CHECKA 4,5,XRESV,2,W,WCOORA,,2 546L YCHECKED 54L= SMO FX2 555W LDXC 0 XLDEXA 55KG BCS ONMT [ONLINE 5656 # MAGSTEP READS PROGRAM DIRECTLY INTO OP AREA 56JQ MAGSTEP XEOF,XTM,XLONGBLK,5,4 574B XLONGBLK 57J2 BRN TCHS 583L ONMT 58H= # IF ONLINE,PERI DIRECTLY INTO OP AREA 592W LDX 3 4 [REMEMBER O.P. ADDR 59GG #SKIP G4 5=26 LDX 6 ASEGTAB(2) [SEG TABLE ADDRESS 5=FQ #SKIP G3 5=^B FADDRESS 2,4,HLOCK1 5?F2 LDX 2 FX2 5?YL DCA ,STO,5,COUNT 5#D= DCA ,STO,4,CTSA 5#XW #SKI G4 5*CG ( 5*X6 LDX 4 XMODE(1) 5BBQ DCA ,ORS,4,MODE [ADDITIVE MODE FOR PERI 5BWB DCA ,STO,6,SEGTAB [SEG TABLE ADDRESS 5CB2 ) 5CTL LOCKC 2,ZCPA [LOCK CPA 5D*= #SKIP G4 [IN GEORGE 4 IT IS NECESSARY TO USE 5DSW ( 5F#G ORX 7 GSIGN [THE SPECIAL PERI INTO AN OBJ PROG 5FS6 LDX 0 6 [SEG TABLE ADDRESS 5G?Q ) 5GRB GPERI ,2 5H?2 #SKI G4 5HQL DCA ,ERS,4,MODE [CLEAR ADDITIVE MODE BIT 5J== COOR1 5JPW UNLOCK 2 5K9G CALL 6 RESTARTMT 5KP6 LDN 0 20 5L8Q DCA ,STO,0,COUNT 5LNB LDX 4 3 [O.P. ADDR 5M82 TCHS 5MML # COMMON ROUTINE TO CHECKSUM AND CLEAR UP AFTER TYPE 5 DATA TRANSFER 5N7= FPCACA 2 5NLW FSUM 2,3,4,5,HLOCK1,2 5P6G SMO FX2 5PL6 ADX 3 WCHECKSUM 5Q5Q BNZ 3 XCHECKSUM 5QKB #SKIP G4 5R52 ( 5RJL # 5S4= # THIS SECTION ENSURES THAT GEORGE HAS A SENSIBLE SELECTION 5SHW # OF PAGES IN CORE AT THE END OF A LOAD OR CONT. 5T3G # THIS IS DONE BY LOCKING THE FIRST PAGES LOADED INTO CORE 5TH6 # 5W2Q XLOCK 5WGB SMO FX2 5X22 LDX 7 XQUOTA [PICK UP IND OF PAGES TO LOCK 5XFL BNG 7 ZLK9 [J IF ENOUGH PAGES LOCKED 5X^= BNZ 7 ZLK4 [J IF SOME PAGES LOCKED 5YDW LDX 7 HLOCK1+1(2) 5YYG BZE 7 ZLK9 [PAGE 0 IS ALWAYS LOCKED ANYWAY 5^D6 HUNT2 3,BSTB,BSCB,2 5^XQ LDX 0 AMAXSIZE(3) 62CB BPZ 0 ZLK2 62X2 TXL 7 BIT11 [FOR A SPARSE PROG WE DO NOT 63BL BCS ZLK9 [LOCK PAGES BELOW 4K 63W= ZLK2 64*W STO 7 HLOCK2+1(2) [START OF AREA TO BE KEPT IN CORE 64TG LDX 7 AQUOTA(3) 65*6 SLL 7 10 [SET X7 TO INDICATE NO OF PAGES TO 65SQ SBN 7 3584 [BE KEPT IN CORE - QUOTA-3.SET B14 66#B LDN 0 CHREAD+CHWRITE 66S2 STO 0 HLOCK2(2) [SET PERM IN 2ND HLOCK AREA 67?L BNG 7 ZLK8 67R= ZLK4 LDX 3 HLOCK2+1(2) [START OF AREA ALREADY LOCKED 68=W LDX 4 HLOCK2(2) [LENGTH 68QG ANDX 4 B2T13 69=6 ADX 3 4 [END OF AREA 69PQ TXL 3 HLOCK1+1(2) [J UNLESS THE AREA JUST READ BELONGS 6=9B BCS ZLK8 6=P2 LDX 0 HLOCK1(2) [TO A PAGE WHICH FOLLOWS ON IMMEDIATE 6?8L ANDX 0 B2T13 [LY AFTER THE AREA ALREADY LOCKED 6?N= ADX 0 HLOCK1+1(2) 6#7W TXL 3 0 6#MG BCC ZLK8 6*76 SBX 3 4 [LOCK PAGE FOLLOWING THOSE ALREADY 6*LQ ADN 4 1024 [LOCKED 6B6B # EXTEND PERM LOCKED AREA-CANNOT USE CHECKEXT,IT ASSUMES LENGTH OF 6BL2 # AREA LOCKED IS GREATER THAN ZERO 6C5L CLEAR 2,0,HLOCK2,2 6CK= CHECKB 3,4,(GEOERR),2,W,(GEOERR),HLOCK2,2 6D4W SBN 7 1024 6DJG ZLK7 BPZ 7 ZLK4 [REPEAT IF FURTHER PAGES TO BE LOCKED 6F46 ZLK8 SMO FX2 6FHQ STO 7 XQUOTA 6G3B ZLK9 CLEAR 2,0,HLOCK1,2 6GH2 ) 6H2L BRN NEXTREC 6HG= WCOORA 6H^W FPCACA 2 6JFG BRN YCHECKED 6J^6 TYPE6 6KDQ LDCT 0 #200 6KYB ANDX 0 XLDEXA(2) 6LD2 BNZ 0 XBLOCKTYPE [ILLEGAL FOR CONT 6LXL SBN 5 8 6MC= BNZ 5 XRECSIZE 6MWW FPCACA 3,2 6NBG HUNT2 3,AOBRES,0 6NW6 LDX 0 ALOGLEN(3) 6P*Q SBN 0 24 6PTB BZE 0 X2SRS 6Q*2 ALTLEND 3,24 6QSL FPCACA 1,2 6R#= HUNT2 3,AOBRES,0,1 6R*^ ... LDCT 0 #020 6RCN ... ANDX 0 XLDEXA(2) 6RFC ... BNZ 0 ZT61 6RH6 ... READAGAIN [SERIAL ACCESS LOAD FILE 6RJT ... MHUNTW 2,FILE,FRB 6RLJ ... ADN 2 A1+2 6RN? ... BRN ZT62 6RQ2 ...ZT61 6RRW MHUNTW 2,FILE,FRB 6S?G ADN 2 A1 6SH# ...ZT62 6SR6 ADN 3 A1+16 6T=Q MOVE 2 8 6TQB BRN NEXTREC 6W=2 # 6WPL # 6X9= # SUBROUTINE TO LOCATE CPA IN X2 6XNW ZCPA 6Y8G LDX 2 FX2 6YN6 EXIT 1 0 6^7Q # SUBROUTINE TO LOCATE FILE/FRB 6^MB ZFRB 7272 MHUNTW 2,FILE,FRB 72LL EXIT 1 0 736= # 73KW # 745G # 74K6 XBRKIN [NOT POS BECAUSE BRKIN INHIBITED 754Q XCANTDO 75JB MFREEW FILE,FRB 7642 BRN RERROR1 76HL # 773= # 77GW # ALL ERROR CONDITIONS BRANCH HERE TO PICK UP LABEL OF NAME OF APPROPRIT 782G # (OR INAPPROPRIATE) ERROR MESSAGE 78G6 X2RS 78^Q X2SRS 79FB XBLOCKTYPE 79^2 XTYPE1 7=DL XTYPE5 7=Y= LDN 1 WRBLK 7?CW BRN RERROR 7?XG XEOF 7#C6 LDN 1 NOENT 7#WQ BRN RERROR 7*BB XREADFAIL 7*W2 XSPACES 7B*L XTM 7BT= XLEFTBRACK 7C#W XRECSIZE 7CSG XDATASIZE 7D#6 LDN 1 RINFF 7DRQ BRN RERROR 7F?B XRESV 7FR2 LDN 1 WERRES 7G=L BRN RERROR 7GQ= XCHECKSUM 7H9W LDN 1 RCHER 7HPG RERROR 7J96 SMO FX1 7JNQ LDX 5 0(1) [NAME OF ERROR 7K8B RERROR1 7KN2 ACROSS LOADERR,2 [REPORT ERROR AND CLEAR UP 7L7L MENDAREA 40,K99LOAD 7LM= #END ^^^^ ...40255163000200000000 </code> Last modified: 17/01/2024 11:55by 127.0.0.1 Log In