LOADERGO867

(George Source)

Macros used: BS, DCA, GPERI, JBUSY, JENG, MTREW, READY, SUICIDE

LOADERGO867.txt
22FL ...#SEG  LOADERGO86                   [M. DRUKKER  
22J9 ...#  ######################################################## 
22LS ...#   
22PC ...#  (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982   
22S2 ...#   
22WK ...#  #########################################################
22^=    #LIS  K0LOADERMT>K0LOADER>K0ALLGEO  
23DW    #   
23YG    #   
24D6    #     THIS SEGMENT CONTAINS THE SECOND & THIRD ENTRY POINTS:
24XQ    #           K2LOADERMT : WE GET HERE WHEN THE GEORGE FILE HAS BEEN  
25CB ...#                        LOCATED AFTER A DA/ED/FD/DR/HD COMMAND.
25X2    #                        GEORGE IS TRANSFERRED FROM TAPE TO ITS 
26BL    #                        FUTURE HOME
26W=    #   
27*W    #           K3LOADERMT : WE GET HERE AS SOON AS GEORGE IS RESIDENT  
27TG    #                        IN ITS BS FILE. LOADER IS BROUGHT DOWN &   
28*6    #                        IS ENTERED.
28SQ    #   
29#B    #     ***  DATA AREAS  ***  
29S2    #   
2=?L    #   
2=R=    #DEF  MTFAILMK=JLFAIL   
2?=W    #DEF  THEFILE=JLFILE
2?QG    #DEF  TRAPFAIL=JLTRAP   
2#=6    #DEF  STARTCOMM=JLCOMM  
2#PQ    #   
2*9B    #   
2*?K ...JLSMESS        +0                  [CHAR COUNT FOR ECHOING  
2**S ...JLMESS  
2*D3 ...#GAP  25                           [CONSOLE BUFFER  
2*G= ...      4H                           [THESE ARE HERE SO THAT DELETE CHARS 
2*JF ...#                                  [ARE HANDLED PROPERLY
2*LN ...#   
2*P2    Z511           +511 
2B8L    ZNEWINST       LDX   4  WRITEAWAY(2)
2BN=    ZOLDINST       LDN   4  1   
2C7W    S   
2CMG    #GAP  6 
2D76    JLTABLE 
2DLQ    ZALDS          +LFSTABLE
2F6B                   +LCDUM   
2FL2                   +DFSTABLE
2G5L                   +DCDUM   
2GK=    #     CONTROL AREAS FOR MT  
2H4W    #   
2HJG    JLMHEAD 
2HWX ...MHEAD          +0,+10,+JLMHEADA 
2J9# ...JLMSKIP 
2JHQ    MSKIP          +4,+0,+0 
2JRJ ...JLMDATA 
2K3B ...MDATA          +0,+512,+AENDCHAPS+1024  
2K?8 ...JLMTREW 
2KH2    MTREW          +7,+0,+0 
2L2L    #   
2LG=    NDADD   
2L^W    JLNDADD        -512                [LAST D-ADDRESS TRANSFERRED TO BS
2MFG    MTYPE5         #73050005           [WD 0 OF TYPE 5 BLK  
2M^6    MENT           #73030002           [WD 0 OF ENTRY BLK   
2NDQ    JLTMCNT 
2NYB    TMCOUNT        +0                  [COUNT OF TM'S READ  
2PD2    MRFIRS         +DFSTABLE+FIRS   
2PXL    JLMHEADA
2QC=    MHEADA  
2QWW    #GAP  10
2R6N ...X1             +0                  [FOR ACCUMULATOR 
2RBG    PTLINK         +0                  [FOR PERITAPE
2RW6    WRLINK         +0                  [FOR JLWRITE 
2S*Q    WRLINKA        +0                  [FOR WRITE   
2STB    WRX4           +0   
2T*2    WRX7           +0   
2TSL    BSVOL   
2W#=    VOLPROG        +DGEND+LGEND        [SIZE OF GEORGE FILE ON TAPE 
2WJ4 ...JLVOLFILE   
2WRW    VOLFILE        +0                  [TO KEEP SIZE OF G'S BS FILE 
2X?G    ZBMARK         +0                  [-VE -> HANDLING ZERO-BLKS   
2XR6    SEPAR          +0                  [ZERO-BLK SEPARATION 
2XY# ...#SKI G4 
2Y5G ...JLSWBUF        +0                  [IN LOADEREM FOR G3  
2Y=Q    MASKA          #37777777           [USEFUL MASK 
2YCY ...XDLOADERMT     +DLOADERMT          [NOW REDUNDANT   
2YK7 ...THEEND         +ENDOFLA+LLOADERPM   
2^=2    READOWN        +0,+0,+0,+0         [MODE/COUNT/CTSA/DTSA FOR READING
2^PL                                       [DOWN LOADER 
329= ...WRITEAWAY      +1,+0,+AENDCHAPS,+0    [MODE/COUNT/CTSA/DTSA FOR WRITING 
32NW                                       [BLOCKS AWAY TO BS   
32YN ...JLGSMALL
338G    SMALL          +32,32H    GEORGE BS FILE TOO SMALL^*^*  
33D# ...JLGSFMESS   
33N6    SFMESS         +24,24H    MT CHECKSUM FAIL^*^*  
33XY ...JLGMFEMESS  
347Q    MFEMESS        +23,23H    MT FORMAT ERROR^*^*   
34CJ ...JLGMTFAIL   
34MB    MTFAIL         +15,15H    MT FAIL^*^*   
34X8 ...JLGVLOST
3572    VLOST          +20,20H    LOST MY TAPE^*^*  
35BS ...JLGREADY
35LL    READY          +18,18H    OK^*LOADED^*^*
35WD ...WIDTH          +49,49H    WARNING^*   GEORGE FILE IS NOT FULL WIDTH^*^* 
366=    #   
36KW    #   
375G    #   
37K6    #   
384Q    #     S/R TO EXECUTE TRANSFERS ON MAG TAPE  
38JB    #           CALLED VIA X0   
3942    #           EXPECTS X6->CONTROL AREA; JLPSMT(2)->DL FOR TAPE
39HL    JLPTAPE 
3=3=    PERITAPE
3=GW    #     NOT TAPEMARK ENTRY POINT  
3?2G          NGNC  5  1
3?G6    #     TM ENTRY POINT
3?^Q          LDN   5  0
3#FB          ERN   5  1
3#^2          STO   0  PTLINK(2)
3*DL          LDX   1  JLPSMT(2)           [->DL FOR TAPE   
3*Y=          JENG     1,PT1
3BCW    PT2   LDN   1  MTFAIL(2)           [TAPE FAIL   
3BXG          STOZ     MTFAILMK(2)         [INDICATE IT 
3CC6          BRN      JLER 
3CWQ    PT1   LDX   2  6
3DBB          LDX   7  0(2) 
3DW2          DCA      1,STO,7,MODE 
3F*L          LDX   7  1(2) 
3FT=          DCA      1,STO,7,COUNT
3G#W          LDX   7  2(2) 
3GSG          DCA      1,STO,7,CTSA        [SET UP CONTROL AREA 
3GWP ...      LDX   2  G3DOL
3H5B ...      LDX   7  JLSWBUF(2)   
3H7K ...      BNZ   7  PT3                 [NOT YET IF DOUBLE BUFFERING 
3H#6          SMO      G3DOL
3HRQ          LDN   2  JLPSMT-CPPTR        [2->PAB  
3J?B          GPERI    1,2,NC   
3JR2    PT3   JBUSY    1,PT3               [WAIT ON TERMINATION 
3K=L          DCA      1,LDEX,7,MODE       [GET PERI MODE   
3KQ=          LDX   2  G3DOL
3L9W          SBN   7  7
3LPG          BZE   7  PT4                 [REWINDS CAN'T FAIL  
3M96          ADN   7  3
3MNQ          BNZ   7  PT5                 [NOT SKIP-TO-TM  
3MX2 ...      LDN   1  JLPSMT-CPPTR 
3N5= ...      LDX   0  CPRW1
3N?G ...      SLL   0  3
3NFQ ...      BNG   0  PT2                 [FAILED  
3NN2          BRN      PT4                 [OK  
3P7L    PT5   LDX   0  JLPSMT+1(2)         [GET REPLY WD.   
3PM=          SRL   0  19   
3Q6W          ANDN  0  #27                 [GET B0 & B2-B4  
3QLG          ERX   0  5                   [SWITCH B4 IF TM EXPECTED
3R66          BNZ   0  PT2                 [FAILED  
3R8P ...PT4 
3RDG ...      LDX   7  JLSWBUF(2)   
3RH5 ...      BZE   7  PT6                 [SINGLE BUFFRG DONE ALREADY  
3RKN ...      SMO      G3DOL
3RN? ...      LDN   2  JLPSMT-CPPTR        [2->PAB  
3RQW ...      GPERI    1,2,NC   
3RTF ...      LDX   2  G3DOL
3S2M ...PT6   LDX   0  PTLINK(2)           [RELOAD LINK 
3S5B          EXIT  0  0
3TJ=    #   
3W3W    #   
3WHG    #     S/R TO WRITE AWAY A BLK FROM JLBUFF TO BS.
3X36    #           DRUM ADDRESS OF BLK IN X7   
3XGQ    #           CALLED VIA X0   
3Y2B    #           FILE DETAILS AT BSDESC (Q.V.).  
3YG2    #           DEVICE DETAILS: 
3Y^L    #           1) PTR TO DEVICE LIST IN JLPSBS 
3^F=    #           2) DEVICE TYPE (6,9,13,25 OR 26) IN JLBS
3^YW    #           3) DEVICE SUBTYPE IN JLBSUB (IF DISC).  
42DG    #   
42Y6    JLWRITE 
43CQ          STO   0  WRLINK(2)
43N= ...      LDX   0  JLSWBUF(2)   
43SG ...      LDX   5  AJLBUFF(2)   
43YQ ...      SBX   5  2                   [ROUND DATUM PROBLEM - TEMP  
44*G ...      BZE   0  WR00                [JUMP IF S. BUFF'G   
44FQ ...      ADX   5  JLTDOUBUF(2) 
44Q= ...WR00  STO   5  WRITEAWAY+2(2)      [USUAL CTSA  
44WL          LDX   0  JLBS(2)  
45B=          ANDN  0  6
45TW          BZE   0  WRDRUM   
46*G    #   
46T6    #     WRITING TO DISC   
47#Q    #   
47SB          LDN   0  512  
48#2          STO   0  WRITEAWAY+1(2)      [COUNT IN GENERAL
48RL          SRL   7  7                   [->BLKS  
49?=          LDX   5  7                   [X7]=1ST IN GROUP REL BLKNO  
49QW          ADN   5  3                   [X5]= LAST...
4==G          DVS   4  BSDESC+5(2)         [/FILEDEPTH  
4=Q6          DVS   6  BSDESC+5(2)         [/FILEDEPTH  
4?9Q          TXU   5  7                   [FIRST & LAST BLKS IN SMME CYL   
4?PB          BCC      WR01                [YES 
4#92    #   
4#NL    #     GROUP SPLIT OVER CYL  
4*8=    #   
4*MW          LDX   0  BSDESC+5(2)         [FILE DEPTH  
4B7G          SBX   0  6                   [X0]=NO OF BLKS IN 1ST CYL   
4BM6          SLL   0  7                   [-> WDS  
4C6Q          STO   0  WRITEAWAY+1(2)      [COUNT FOR 1ST TRANSFER  
4CLB          CALL  0  WRITE               [WRITE AWAY 1ST LOT  
4D62          LDX   0  WRITEAWAY+1(2)   
4DKL          ADS   0  WRITEAWAY+2(2)      [DTSA FOR 2ND TRANSFER   
4F5=          SBN   0  512  
4FJW          NGS   0  WRITEAWAY+1(2)      [COUNT FOR 2ND TRANSFER  
4G4G          LDX   6  4                   [REL BLKNO   
4GJ6          LDX   7  5                   [REL CYLNO   
4H3Q    #   
4HHB    WR01  CALL  0  WRITE
4J32          LDX   0  WRLINK(2)
4JGL          EXIT  0  0
4K2=    #   
4KFW    #     S/R TO WRITE  AWAY CHUNKLETS (1,2,3,4 BLKS)   
4K^G    #     EXPECTS CTSA & COUNT FILLED IN & [X6]= BLKNO REL TO FILE  
4LF6    #           & [X7]= CYLNO REL TO FILE   
4LYQ    #   
4MDB    WRITE STO   0  WRLINKA(2)   
4MY2          MPY   7  BSDESC+4(2)         [REL CYLNO*BLKS/CYL  
4NCL          ADX   0  BSDESC+2(2)         [+START BLKNO OF FILE
4NX=          ADX   0  6                   [+REL BLKNO  
4PBW                                       [GIVES ABS BLKNO REL TO SU   
4PWG ...      LDX   1  0
4QB6 ...      CALL  6  JLCONV2             [-> HA IN X0 
4R*B          LDN   1  WRITEAWAY(2) 
4RT2          STO   0  3(1)                [DTSA
4S#L          LDX   3  JLPSBS(2)
4SS=          CALL  0  JLPDISC  
4T?W          NULL  
4TRG          LDX   0  WRLINKA(2)   
4W?6          EXIT  0  0
4WQQ    #   
4X=B    #     WRITING TO DRUM   
4XQ2    #   
4Y9L    WRDRUM  
4YP=          LDX   0  JLBS(2)  
4^8W          SBN   0  9
4^NG          BZE   0  WRSD                [DETERMINE DRUM TYPE 
5286    WRHSD   
52MQ          SRL   7  7                   [BLK ADDR
537B    WRSD  ADX   7  BSDESC(2)           [+ DATUM 
53M2          LDN   1  WRITEAWAY+1(2)   
546L          STO   7  2(1) 
54L=          LDN   7  512                 [COUNT   
555W          STO   7  0(1) 
55KG          LDN   4  1
5656          LDX   3  JLPSBS(2)
56JQ          LDCT  0  #400                [DON'T IGNORE FIXES OR FAILS 
574B          CALL  6  JLPDRUM             [TRANSFER
57J2 ...      0 
583L          LDX   0  WRLINK(2)           [RESTORE LINK
58H=          EXIT  0  0
592W    #   
59GG    #   
5=26    #     VARIOUS ERROR PATHS   
5=FQ    #   
5=PJ ...JLSUMF  
5=^B    SUMF
5?F2          LDN   1  SFMESS(2)
5?YL          STOZ     MTFAILMK(2)         [IRRECOVERABLE   
5#D=          BRN      JLER 
5#XW ...JLMFE   
5*CG ...MFE   LDN   1  MFEMESS(2)   
5*X6          STOZ     MTFAILMK(2)         [IRRECOVERABLE   
5BBQ          BRN      JLER 
5BLJ ...JLTOOSMALL  
5BWB    TOOSMALL
5CB2          LDN   1  SMALL(2) 
5CTL          BRN      JLER 
5D*=    #   
5DSW    #   
5F#G    #   
5FS6    #   
5G?Q    #   
5GRB    K2LOADERMT  
5H?2    #   
5HQL    #     WE GET HERE WHEN THE BS FILE HAS BEEN LOCATED, CARRYING   
5J==    #           X3->DL OF DEVICE HOLDING FILE   
5JPW    #           X1->FILE FAC(DISC)/DIR.ENTRY(DRUM). 
5K9G    #   
5KBN ...#SKI G3 
5KHW ...      STOZ     JLSWBUF(2)   
5KP6          LDN   2  THEFILE(2)          [STORE   
5L8Q          MOVE  1  5                   [ AWAY   
5LNB          LDX   2  G3DOL               [  FOR   
5M82          STO   3  JLPSBS(2)           [   FUTURE   
5MML ...      LDX   0  AJLBUFF(2)          [SET 
5N7=          STO   0  MDATA+2(2)          [ UP 
5NLW          LDN   0  MHEADA(2)           [  THE   
5P6G          STO   0  MHEAD+2(2)          [   CTSA'S   
5PL6          STOZ     TMCOUNT(2)   
5Q5Q          LDX   0  JLBS(2)             [GET REAL DEVICE TYPE
5QKB          ANDN  0  6
5R52          BNZ   0  VDISC               [DISC
5RJL    #   
5S4=    #     GET DETAILS OF DRUM FILE FOR JLWRITE  
5SHW    VDRUM   
5T3G          LDX   0  0(1)                [GET D/L WD  
5TH6          LDX   7  JLBS(2)  
5W2Q          SBN   7  9
5WGB          BNZ   7  VHSD                [HSD 
5X22    #   
5XFL          LDN   1  0
5X^=          SRL   01 10   
5YDW          SRL   1  4                   [WD LENGTH IN X1 
5YYG          STO   1  VOLFILE(2)          [STORE FILE SIZE 
5^D6          ANDN  0  #3777
5^XQ          SLL   0  10                  [WD DATUM IN X0  
62CB    V01A  STO   0  BSDESC(2)           [DATUM   
62X2          STO   1  BSDESC+1(2)         [LENGTH  
63BL          BRN      V01  
63W=    #   
64*W    VHSD  SRL   01 12                  [DATUM IN BLKS IN X1 
64TG          SRL   1  5                   [WD FILE SIZE
65*6          STO   1  VOLFILE(2)          [STORE IT
65SQ          SRL   1  7                   [LENGTH IN BLKS IN X1
66#B          BRN      V01A 
66S2    #   
67?L    VDISC   
67DS ...      LDX   7  2(1)                   [ FULL WIDTH FILE ?   
67L2 ...      BPZ   7  WID1 
67R8 ...      LDN   1   WIDTH(2)          [ IF NOT PUT OUT A WARNING MESSAGE
67YB ...      CALL  6  JLOUT
685J ...WID1  LDX   6  1(1) 
68=W          ANDX  6  MASKA(2) 
68QG          STO   6  BSDESC+2(2)         [START BLKNO 
69=6          LDX   7  2(1) 
69PQ          ANDX  7  MASKA(2) 
6=9B          STO   7  BSDESC+3(2)         [END BLKNO+1 
6=P2          LDX   0  4(1) 
6?8L          STO   0  BSDESC+4(2)         [BLKS/CYL
6?N=          SBX   7  6                   [BLKSIZE OF FILE 
6#7W          SLL   7  7
6#MG          STO   7  VOLFILE(2)          [[STORE WD.SIZE OF FILE  
6*76          SRL   7  7
6*LQ          DVS   6  0                   [/BLKSPERCYL 
6B6B          BNZ   6  V14  
6BL2          LDX   6  BSDESC+4(2)         [FULL DEPTH FILE 
6C5L    V14   STO   6  BSDESC+5(2)         [FILE DEPTH  
6CK=    #   
6D4W    V01   LDX   0  VOLFILE(2)          [GET SIZE OF BS FILE 
6DJG          TXL   0  VOLPROG(2)          [< PROGRAM SIZE? 
6F46          BCS      TOOSMALL            [YESSO WON'T FIT 
6FHQ    #   
6G3B    #     FOLLOWING COMPACTS THE FS TABLE & STOZZES THE REST , LEAVING A
6GH2    #           POINTER TO THE END OF THE LIST. 
6H2L          LDN   0  FSTABLEN-1   
6H*3 ...      LDX   1  AJLRTAB(2)   
6HMD ...      ADN   1   5   
6H^W ...      LDX   2  AJLRTAB(2)   
6JFG    TFS20 LDX   4  0(2) 
6J^6          BZE   4  TFS21
6KDQ          ADN   2  5
6KYB          BRN      TFS20
6LD2    TFS21 LDX   4  0(1) 
6LXL          BNZ   4  TFS22
6MC=          ADN   1  5
6MWW          BCT   0  TFS21
6NBG          BRN      TFS23
6NW6    TFS22 MOVE  1  5
6P*Q          STOZ     0(1) 
6PTB          BRN      TFS20
6Q*2    TFS23 LDX   7  2
6QSL    TFS24 TXL   2  1
6R#=          BCC      TFS25
6RRW          STOZ     0(2) 
6S?G          ADN   2  1
6SR6          BRN      TFS24
6T=Q    TFS25 LDX   2  G3DOL
6TQB ...      SBX   7  AJLRTAB(2)   
6W=2 ...      STO   7  JLRSW(2) 
6WPL    #   
6X9=    #   
6XNW    V02   LDCT  0  #400                [TRAP DISC/TAPE  
6Y8G          STO   0  TRAPFAIL(2)         [FAILS NOW ON
6YN6    #   
6^7Q    #     FROM THIS POINT THE TAPE HAS MOVED & RECOVERY IS AWKWARD IF A 
6^MB    #     BS FAIL OCCURS & IMPOSSIBLE IF A TAPE FAIL OCCURS. ANY FAIL FROM  
7272    #     NOW ON CAUSES CONTROL TO PASS TO RECOVERY.
72LL    #     FIRST POSITION TAPE AT START OF PROGRAM FILE IN GIN DUMP. 
736=    #   
73KW          JENG     3,V03               [TAPE STILL THERE
745G          LDN   1  VLOST(2) 
74K6          BRN      CATASTROPHE         [GIVE UP 
754Q    V03   LDN   6  MSKIP(2) 
75JB          CALL  0  PERITAPE            [SKIP TO END OF S/F  
7642          LDN   0  1
76HL          ADS   0  TMCOUNT(2)   
773=          LDN   6  MHEAD(2) 
77GW          CALL  0  PERITAPE            [READ END S/F SENT   
782G          LDCT  0  #400 
78G6          ERX   0  MHEADA(2)
78^Q          BNZ   0  MFE                 [NOT CORRECT 
79FB    V04   CALL  0  PERITAPE+1          [READ A TM   
79^2          LDN   0  1
7=DL          ADS   0  TMCOUNT(2)   
7=Y=          CALL  0  PERITAPE            [READ START SENT FOR GIN DUMP
7?CW          LDX   0  MHEADA(2)
7?XG          SBN   0  6                   [NOT END OF S/F SENT 
7#C6          BNZ   0  MFE  
7#WQ          LDX   0  MHEADA+2(2)  
7*BB          LDX   4  MHEADA+3(2)  
7*W2          LDX   7  MHEADA+4(2)  
7B*L          TXU   0  GELLY+1(2)   
7BT=          TXU   4  GELLY+2(2)   
7C#W          TXU   7  GELLY+3(2)   
7CSG          BCS      MFE                 [NOT CORRECT NAME
7D#6          CALL  0  PERITAPE+1          [READ TM 
7DRQ          LDN   0  1
7F?B          ADS   0  TMCOUNT(2)   
7FR2          CALL  0  PERITAPE            [READ GIN REQUEST SLIP   
7G=L          LDCH  0  MHEADA(2)
7GQ=          SBN   0  #73  
7H9W          BNZ   0  MFE                 [NOT BINARY BLK  
7HPG          LDX   0  MHEADA(2)
7J96          ANDN  0  #77  
7JNQ          SBN   0  1
7K8B          BNZ   0  MFE                 [NOT REQUEST SLIP
7KN2    V06   CALL  0  PERITAPE            [READ TO FIND PROGRAM FILE DUMP  
7L7L          LDX   0  MHEADA(2)
7LM=          TXU   0  MENT(2)  
7M6W          BCC      RNEXT               [ENTRY BLK - END OF CORE IMAGE   
7MLG          TXU   0  MTYPE5(2)
7N66          BCS      MFE                 [NOT TYPE 5 BLK  
7NKQ          CALL  0  PERITAPE            [READ DATA BLK   
7P5B          BRN      V06  
7PK2    #   
7Q4L    #   
7QJ=    #   
7R3W    #              TAPE NOW POSITIONED TO READ GEORGE TYPE 5 BLKS   
7RHG    #   
7S36    RNEXT LDN   6  MHEAD(2) 
7SGQ          CALL  0  PERITAPE            [READ SPECIFYING BLK PERHAPS 
7T2B          LDX   0  MHEADA(2)
7TG2          TXU   0  MENT(2)  
7T^L          BCS      V13                 [NOT ENTRY BLK   
7WF=          LDN   7  MHEADA(2)
7WYW          SUM   6  3
7XDG          BNZ   6  SUMF                [CHECKSUM FAIL ON ENTRY BLK  
7XY6          LDN   6  MTREW(2) 
7YCQ          BRN      K3LOADERMT          [GO & LOAD LOADER
7YXB    #   
7^C2    #     CHECK LAST BLK READ IS TYPE 5 & WRITE IT (OR ZERO BLKS) AWAY. 
7^WL    #   
82B=    V13   TXU   0  MTYPE5(2)
82TW          BCS      MFE                 [NOT TYPE 5 BLK  
83*G          LDN   7  MHEADA(2)
83T6          SUM   6  5
84#Q          BNZ   6  SUMF                [SPECIFYING BLK DOES NOT CHECKSUM
84SB          LDN   6  MDATA(2) 
85#2          CALL  0  PERITAPE            [READ A DTA BLK  
85RL          LDX   1  MHEADA+2(2)  
86?=          ANDN  1  #777                [EXTRACT BLK LENGTH  
86QW ...      LDX   7  AJLBUFF(2)   
87=G          SUM   6  0(1)                [& SUM BLK   
87Q6          STO   6  MHEADA+4(2)  
889Q          LDN   7  MHEADA+3(2)  
88PB          SUM   6  2
8992          BNZ   6  SUMF                [DATA BLK DOES NOT CHECKSUM  
89NL    #   
8=8=    #     MUST NOW DETERMINE IF ANY ZERO-BLKS HAVE BEEN OMITTED BETWEEN BLK 
8=MW    #           JUST READ & PRECEDING ONE. IF NONE HAVE , BLKS SHOULD BE
8?7G    #           CONCURRENT. OTHERWISE, IF SOME ZERO-BLKS ARE MISSING,   
8?M6    #           WE MUST WRITE THEM TO BS , ENSURING THAT FS'S & ALTERS FOR  
8#6Q    #           THEM ARE INCLUDED,. 
8#LB    #   
8*62          LDX   0  VOLFILE(2)   
8*KL          TXL   0  MHEADA+1(2)         [BS ADDRESS  
8B5=          BCS      MFE                 [NOT IN RANGE
8BJW          LDX   0  MHEADA+1(2)         [THIS BACKING STORE ADDRESS  
8C4G          SBX   0  NDADD(2)            [ - LAST BS-ADDR.
8CJ6          SBN   0  512  
8D3Q          BZE   0  VV01                [CONSE CUTIVE BLKS   
8DHB          SRL   01 9                   [SEPARATION/512  
8F32          SRL   1  15   
8FGL          BNZ   1  MFE                 [SEP(MOD 512) NOT=0, MT FE   
8G2=          SBN   0  1
8GFW          STO   0  SEPAR(2)            [NO. OF ZERO-BLKS - 1
8G^G ...      LDX   0  AJLBUFF(2)   
8HF6 ...      LDX   1  AJLBUFF(2)   
8HYQ          ADN   1  512  
8JDB          MOVE  0  0                   [MOVE DATA BLK OUT OF WAY
8JN8 ...      LDX   1 AJLBUFF(2)
8JY2 ...      ADN   1   1   
8K7S ...      LDX   3  AJLBUFF(2)   
8KHH ...      STOZ     0(3) 
8KX=          MOVE  0  511                 [CLEAR BUFFER
8LBW          LDN   0  MHEADA(2)
8LWG          ADN   1  1023 
8MB6          MOVE  0  5                   [MOVE SPEC BLK OUT OF WAY
8MTQ          LDCT  0  #400                [SET ZERO-BLK MARK   
8N*B          STO   0  ZBMARK(2)
8NT2    VV04  LDN   0  512  
8P#L          STO   0  MHEADA+2(2)         [WD COUNT OF BLK 
8PS=          ADX   0  NDADD(2) 
8Q?W          STO   0  NDADD(2)            [UPDATE 'LAST BS-ADDR.'  
8QRG          STO   0  MHEADA+1(2)         [SET UP SPEC BLK FOR NEXT ZERO-BLK   
8R?6          BRN      VV02 
8RQQ    VV01  STOZ     ZBMARK(2)           [NO ZERO-BLKS
8S=B          LDN   0  512  
8SQ2          ADS   0  NDADD(2)            [UPDATE "LAST D-ADRESS"  
8T9L    VV02
8TP=    #   
8W8W    #     FILL IN ANY FS DESCS & ALTERS FOR BLOCK READ  
8WNG    #   
8X86 ...      LDX   3  JLRSW(2) 
8XMQ          BZE   3  V07                 [NO FS'S 
8Y7B          BPZ   3  V08  
8YM2          NGX   3  3
8^2P ...      LDX   1  AJLRTAB(2)   
8^BD ...      LDX   0  0(1) 
8^Q7 ...      LDX   1  AJLBUFF(2)   
925W          MOVE  0  0(3) 
92KG ...      STOZ     JLRSW(2) 
9356          BRN      V07  
93JQ    #   
944B    V08   LDX   1  MRFIRS(2)
94J2          LDX   6  MHEADA+1(2)  
953L          ADX   6  MHEADA+2(2)         [END D-ADDR OF BLK   
95H=          TXL   1  6
962W          BCC      V07                 [THIS BLK TOO LOW
96GG          SBX   6  1                   [DISTANCE FROM FIRS TO END OF BLK
9726          LDN   3  FSTABLEN+1*5        [COUNT=TOTAL SIZE OF TABLE   
97FQ          TXL   6  3
97^B          BCC      V09                 [ROOM FOR WHOLE TABLE IN THIS BLK
98F2          LDX   3  6                   [ELSE TAKE COUNT TO END OF BLK   
98YL    V09   SBX   1  MHEADA+1(2)  
99D= ...      ADX   1  AJLBUFF(2)   
99XW ...      LDX   0  AJLRTAB(2)   
9=CG          MOVE  0  0(3)                [MOVE IN (PART OF) TABLE 
9=X6          ADX   0  3
9?9H ...      LDX   1  AJLRTAB(2)   
9?HY ...      STO   0  0(1)                [SET POINTER TO NEXT WD TO MOVE IN   
9?WB          SBN   3  FSTABLEN+1*5        [X3=-REMAINDER COUNT 
9#B2 ...      STO   3  JLRSW(2)            [NEG TO INDICATE MORE TO GO  
9#TL    #   
9**=    #     CHECK IF THERE ARE ANY ALTERS FOR THIS BLOCK. 
9*SW    #   
9B7? ...V07   LDX   1  AJLRAT(2)
9BFN ...      LDX   7  0(1) 
9BS6          BZE   7  V12                 [NO  ALTERS  
9C?Q          SRL   7  1
9CRB ...      ADN   1   1                   [ NEXT WORD 
9D?2          LDN   6  0
9DQL    V10   LDX   3  0(1)                [D-ADDR OF ALTER 
9F==          BZE   3  V11                 [ALREADY DONE
9FDG ...      STO   1  X1   
9FLQ ...      LDX   1  AJLRAT(2)
9FT2 ...      LDX   6  0(1)                [SET X6, STILL SOME TO DO
9G3= ...      LDX   1  X1   
9G9G          TXL   3  MHEADA+1(2)  
9GP6          BCS      V11                 [THIS BLOCK TOO HIGH 
9H8Q          SBX   3  MHEADA+1(2)  
9HNB          TXL   3  MHEADA+2(2)  
9J82          BCC      V11                 [OR TOO LOW  
9JML ...      ADX   3  AJLBUFF(2)   
9K7=          LDX   0  1(1)                [GET ALTERING WD 
9KLW          STOZ     0(1)                [CLEAR IT &  
9L6G          STO   0  0(3)                [ALTER BUFFER
9LL6    V11   ADN   1  2
9M5Q          BCT   7  V10                 [NEXT
9MD7 ...      LDX   1  AJLRAT(2)
9MQJ ...      STO   6  0(1) 
9N52    #   
9NJL    V12   LDX   7  MHEADA+1(2)         [D-ADDRESS OF BLOCK  
9P4=          CALL  0  JLWRITE             [WRITE BLK TO BS 
9PHW    #   
9Q3G          LDX   0  ZBMARK(2)           [HANDLING ZERO-BLKS? 
9QH6          BZE   0  RNEXT               [NO, READ NEXT BLK-PAIR  
9R2Q          LDX   0  SEPAR(2)            [ALL ZERO-BLKS WRITTEN AWAY? 
9RGB          BZE   0  VV03                [YES, GO & WRITE AWAY WAITING BLK
9S22          LDN   0  1
9SFL          SBS   0  SEPAR(2)            [DECREMENT COUNT 
9S^=          BRN      VV04 
9TDW    #   
9TYG    VV03  STOZ     ZBMARK(2)           [CLEAR ZERO-BLK MARK 
9WD6 ...      LDX   0  AJLBUFF(2)   
9WXQ          LDX   1  0
9XCB          ADN   1  512  
9XX2          MOVE  0  0                   [REPLACE WAITING DATA BLK
9YBL          ADN   1  512  
9YW=          LDN   0  MHEADA(2)
9^*W          MOVE  0  5                   [REPLACE WAITING SPEC BLK
9^TG          LDX   0  MHEAD+1(2)   
=2*6          STO   0  NDADD(2)            [UPDATE NDADD
=2SQ          BRN      VV02 
=3#B    #   
=3S2    #   
=4?L    #   
=4R=    #   
=5=W    #   
=5QG    #     WE GET HERE AFTER GEORGE HAS BEEN COPIED FROM MT TO ITS BS FILE.  
=6=6    #         MUST NOW LOAD LOADER FROM THIS FILE & SET UP EVERYTHING TO
=6PQ    #         LOOK AS THOUGH GELL HAS JUST BEEN THROUGH 
=79B    #   
=7P2    K3LOADERMT  
=88L    #   
=8N=    #     RE-CALCULATE CHECKSUMS FOR ALTERED GEORGE SEGMENTS
=97W    #   
=9MG          LDX   3  ZNEWINST(2)  
==76          STO   3  WRSD+5(2)
==LQ          NGNC  3  1
=?6B    NEXTSUM 
=?L2          LDN   3  0
=#5L          ADX   3  2
=#K=          STOZ     WRITEAWAY(2) 
=*4W          LDN   5  0
=*JG          LDX   7  ZALDS+2(3)   
=B46          LDX   1  ZALDS(3) 
=BHQ          SBN   1  1
=C3B          TXL   1  Z511(2)  
=CH2          BCS      ONEREAD  
=D2L          TXU   1  Z511(2)  
=DG=          BCC      ONEREAD  
=D^W          CALL  0  SAVE 
=FFG          CALL  0  JLWRITE  
=F^6          CALL  0  RESTORE  
=GDQ ...      LDX   6  AJLBUFF(2)   
=GYB          SUM   5  512  
=HD2          ADN   7  512  
=HXL          SBN   1  512  
=JC=    ONEREAD 
=JWW          CALL  0  SAVE 
=KBG          CALL  0  JLWRITE  
=KW6          CALL  0  RESTORE  
=L*Q          STO   5  0
=LTB ...      LDX   6  AJLBUFF(2)   
=M*2          SUM   5  0(1) 
=MSL          ADX   5  0
=N#=    #SKI  76?-2<1$1                    [INCLUDE IF D-ADD IN CHECKSUM
=NRW          SBX   5  ZALDS+2(3)   
=P5= ...      STO   1  X1(2)
=PBL ...      LDX   1  AJLBUFF(2)   
=PN2 ...      SMO      X1(2)
=P^B ...      NGS   5  0(1) 
=Q=Q          LDN   5  1
=QQB          STO   5  WRITEAWAY(2) 
=R=2          CALL  0  SAVE 
=RPL          CALL  0  JLWRITE  
=S9=          CALL  0  RESTORE  
=SNW          SBX   3  2
=T8G          SBN   3  1
=TN6          BZE   3  NEXTSUM  
=W7Q          LDX   3  ZOLDINST(2)  
=WMB          STO   3  WRSD+5(2)
=X72          LDX   7  JLBS(2)             [GET G BS DEVICE TYPE
=XLL          ANDN  7  6
=Y6=          BZE   7  OFFDRUM             [GEORGE ON DRUM  
=YKW    #   
=^5G    #     LOADER DOWN FROM DISC 
=^K6    #   
?24Q    OFFDISC 
?2JB          LDX   0  THEFILE+4(2) 
?342          STO   0  JLNOB(2)            [BLKS/CYL FOR G FILE 
?3HL          LDX   1  THEFILE+1(2)        [BLK.ADDR OF START OF FILE   
?43= ...      CALL  6  JLCONV2             [H.A. IN X0  
?52G          LDN   1  READOWN(2)   
?5G6          STO   0  3(1)                [DTSA
?5^Q ...      LDN   0  K19                 [WAS (X)DLOADERMT
?6FB          STO   0  1(1)                [COUNT   
?6^2 ...      LDX   0  BK18X
?7DL          SBX   0  2
?7Y=          STO   0  2(1)                [CTSA
?8CW          LDX   3  JLPSBS(2)           [DL PTR  
?8XG          CALL  0  JLPDISC             [BRING DOWN LOADER   
?9C6          NULL  
?9WQ          BRN      POLISH   
?=BB    #   
?=W2    #     LOADER DOWN FROM DRUM 
??*L    #   
??T=    OFFDRUM 
?##W          LDN   1  READOWN+1(2) 
?#SG          LDN   4  0                   [READ MODE   
?*#6 ...      LDN   0  K19                 [WAS (X)DLOADERMT
?*RQ          STO   0  0(1)                [COUNT   
?B?B ...      LDX   0  BK18X
?BR2          SBX   0  2
?C=L          STO   0  1(1)                [CTSA
?CQ=          LDX   6  BSDESC(2)           [G FILE DATUM
?D9W    OFF1  STO   6  2(1)                [DTSA
?DPG          LDX   3  JLPSBS(2)
?F96          LDCT  0  #400                [DON'T IGNORE FIXES OR FAILS 
?FNQ          CALL  6  JLPDRUM             [BRING DOWN LOADER   
?G8B          NULL  
?GN2          LDN   6  THEFILE(2)   
?H7L          LDX   7  STARTCOMM(2) 
?HM=          ADN   7  BLDRUM-BLEXEC
?J6W          MOVE  6  4                   [MOVE DIR ENTRY TO K18-K42 AREA &
?JLG          BRN      POLISH              [JUST ABOUT DONE 
?K66    #   
?KKQ    #              READY TO CLEAR CORE & ENTER LOADER   
?L5B    POLISH  
?LK2          STO   3  GEOBSPTR            [STORE DL PTR FOR LOADER 
?M4L          LDN   1  READY(2) 
?MJ=          CALL  6  JLOUT               [LOADED MESSAGE  
?N6Q ...NDDME LDX   4  BK18X        [FOR ENTRY TO LOADER
?N94 ...      EXIT  4  0                   [AVOID SUICIDE   
?NB= ...#   
?NHG          LDX   3  4
?P36          ADN   3  K19                 [FOR START OF CLEARING   
?PGQ          LDN   6  SUICIDE(2)   
?Q2B          LDN   7  15   
?QG2          MOVE  6  5                   [MOVE CLEARING LOOP  
?Q^L ...      LDX   5  THEEND(2)
?RF= ...      ADX   5  2                   [THIS IS ENOUGH TO CLEAR SELF OUT
?RYW          EXIT  7  0
?SDG    #   
?SY6    #     SUICIDE LOOP  
?TCQ    #   
?TXB    SUICIDE 
?WC2          STOZ     0(3) 
?WWL          ADN   3  1
?XB=          TXL   3  5
?XTW          BCS      SUICIDE  
?Y*G          EXIT  4  0
?YT6    #   
?^#Q    #   
?^SB    #   
#2#2    #   
#2RL    #   
#3?=    #   
#3QW    #   
#4=G    SAVE
#4Q6          STO   1  S(2) 
#59Q          LDN   1  3
#5PB          LDN   2  S+1(2)   
#692          MOVE  1  5
#6NL          LDX   2  G3DOL
#78=          EXIT  0  0
#7MW    RESTORE 
#87G          LDX   2  G3DOL
#8M6          LDN   1  S+1(2)   
#96Q          LDN   2  3
#9LB          MOVE  1  5
#=62          LDX   2  G3DOL
#=KL          LDX   1  S(2) 
#?5=          EXIT  0  0
#?8N ...K77LOADERMT                          [ DATA AREA FOR MENDS  
#?#6 ...#GAP 767-0? 
#?CL ...#   
#?JW    #END
^^^^ ...320751610002
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1