LOAD60

(George Source)

Macros used: ACROSS, ALTLEND, BXGE, CHECKA, CHECKB, CLEAR, COOR1, DCA, FADDRESS, FINMOVE, FPCACA, FSUM, GPERI, HUNT2, LOCKC, MAGREAD, MAGSTEP, MENDAREA, MFREEW, MHUNTW, NAME, READAGAIN, REPEAT, RESTART, SEG, SEGENTRY, STEPAGAIN, T, TRACE, UNLOCK, VFREEW, VSKIP

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