BACKMAP864

(George Source)

Macros used: ACROSS, ALTLEN, BACKREAD, BMSTATS, BNSJ, BS, BWNZ, BWZ, CHAIN, CHAIND, CHECKBL, CLOSEFRBS, COOR3, DOWN, EMSCONWT, FILEMOVE, FPUT, FREECORE, GEOERR, GETACT, GRELOAD, HUNT2J, JBC, JBSS, LDSA, LINK, LINKSET, LOCK, LOCKC, MBS, MENDAREA, MFREE, MFREEALL, MHUNTW, MONOUT, MONOUTX, NAME, OFF, OPENMAS, OPENRELN, OUTBLOCK, OUTBLOCN, OUTMON, OUTNUM, OUTPACK, OUTPACKX, OUTPAR, POP, QSTEPC, READAGAIN, READY, RESTART, REWIND, SEG, SEGENTRY, SETNCORE, STEPAGAIN, TESTNAMX, TESTRPN2, TOPFCA, TOPFCA2, TOPFCB2, UNLOCK, VOP

BACKMAP864.txt
22FL ...      SEG      BACKMAP,864,EDWARD MOON,BMAP 
25H? ...#OPT  BMTRACE=0 
25X2          SEGENTRY K1BACKMAP,Z1BACKMAP  
26BL          SEGENTRY K2BACKMAP,NEEDFILE   
26W= ...      SEGENTRY K3BACKMAP,RESTY  
27*W ...      SEGENTRY K4BACKMAP,NR 
27TG ...[   
28*6 ...[***********************************************************************
28SQ ...[     THIS IS THE FIRST BACKMAP SEGMENT. IT DOES THE INITIAL
29#B ...[     CHECKING THAT A SUITABLE FILESTORE HAS BEEN PROVIDED, AND 
29S2 ...[     SETS UP VARIOUS BLOCKS REQUIRED BY BACKMAP. IT ALSO   
2=?L ...[     PERFORMS SOME RUDIMENTARY CHECKS ON THE AVAILABILITY OF   
2=R= ...[     'ESSENTIAL' SYSTEM FILES. THE OPERATORS ARE ASKED IF ANY  
2?=W ...[     RESTORES ARE REQUIRED AND WE CHECK TO SEE IF A GEN. RES.  
2?QG ...[     MUST BE ENFORCED. 
2#=6 ...[   
2*F8 ...#SKI  K6BACKMAP-150 
2*P2 ...#SKI
2*YS ...UNITNUMASK     #17770000
2B8L    SLAVETYPE   
2BN=    #HAL  +BSA+AUTOMAP,0
2BW8 ...XSERLINK
2C46 ...      LINK     BACKROOM,4   
2C=4 ...XDICTLINK   
2CD2 ...      LINK     BACKROOM,2   
2CKY ...NOTAVAIL       +BMNOTAVAIL  
2CMX ...      SEGENTRY K66BACKMAP   
2CPW ...SLAVEK         +2   
2CRW ...[   
2C^S ...[***********************************************************************
2D7Q ...[           ROUTINE TO CHECK IF THE RESIDENCE NO. OF THE
2D*N ...[                TOP FILE OPEN EXISTS   
2DHL ...[   
2DPJ ...XCHECKLF
2DXG ...      TOPFCB2  3
2F5D ...      LDX   4  BSPRE(3)                    [ PICK UP RES. NO.   
2F?B ...NXTFBSIB
2FF# ...      HUNT2J   2,BSTB,FBSIB,,NEEDFILE      [ HUNT NEXT MAPPING BLOCK AND
2FM= ...      LDEX  0  ATYPE(2)                    [ BRANCH TO ASK FOR RES. IF  
2FT8 ...      SBX   0  4                           [ NONE LEFT. 
2G36 ...      BNZ   0  NXTFBSIB                    [ COMPARE RESIDENCE NOS. & J.
2G94 ...      LDX   2  FX2                         [ IF NOT THE SAME
2GC2 ...      EXIT  7  0                           [ ELSE FOUND, SO EXIT
2GK=    MASWRECK       +BMNOTFS 
2H4W    MARKFS         +BMMKFS  
2HJG    RESTART        +BMRESTART   
2J46    RESTORE        +BMRESTORE   
2LG=    NMASK          #300000  
2M^6    NMAST          12HMASTER
2NDQ    MAST           12H????????????              [   
2NYB ...               12HMASTER                    [ PRESETS FOR FCB   
2PD2 ...               12HMASTER                    [   
2QWW    [   
2RBG    MONOUT  
2RW6          SBX   7  FX1  
2S*Q          MONOUTX  3
2STB          ADX   7  1
2T*2          EXIT  7  0
2TSL    [   
2W#=    OUTPAR  
2WRW          SBX   7  FX1  
2X?G ...      OUTBLOCN 13   
2XR6          OUTPAR   DATENOW,TIMENOW  
2Y=Q          ADX   7  FX1  
2YQB          EXIT  7  0
2^=2    [   
2^PL    [   
329=    WRITEBACK   
32NW          SBX   7  FX1  
338G          BACKWRIT FREE,BSBS
33N6          ADX   7  1
347Q          EXIT  7  0
347^ ...[   
3488 ...[***********************************************************************
348C ...[     ROUTINE TO GET POINTER IN X3 TO NEXT RECORD IN FILE (SAME AS  
348L ...[     STEP). IF WE NEED TO READ A BLOCK FROM BACKING STORE, WE DO THIS  
348T ...[     OURSELVES, SKIPPING ANY BLOCKS WHICH FAIL. X3 = 0 AT E.O.F.   
3494 ...[   
349? ...QSTEPC  
349G ...      QSTEPC   ,XBACKREAD        [ GET PTR. TO NEXT RECORD, BRANCHING   
349P ...XIT                              [ IF WE NEED TO READ BLOCK 
349Y ...      EXIT  7  0                 [ ELSE EXIT WITH PTR. IN X3
34=7 ...XBACKREAD   
34=B ...      STOZ    AWORK1(2)           [ INITIALISE TRANSFER REPEAT COUNT
34=K ...      TOPFCA2  3
34=S ...TRYNXTBLK   
34?3 ...      LDX   3  FREADBLOCK(3)      [ POINTER TO BLOCK TO BE READ 
34?= ...      TOPFCB2  1
34?F ...      LDX   2  FUSEBL(1)
34?N ...      ADN   2  A1                 [ POINTER TO END OF FCB   
34?X ...      SBX   2  3
34#6 ...      BNZ   2  NOTEOF             [ J. IF NOT AT E.O.F. 
34#9 ...      LDX   2  FX2  
34#* ...      STOZ     3                  [ ELSE SET X3 = 0 
34#J ...      BRN      XIT                [ AND EXIT
34#R ...NOTEOF  
34*2 ...      SMO      3                  [ NOT AT E.O.F. SO PICK   
34*9 ...      LDX   3  0(1)               [ UP BLOCK NO.
34*D ...      LDX   2  BSPRE(1)           [ AND RESIDENCE NO.   
34*M ...      SBX   7  FX1  
34*W ...      BACKREAD ,BSBS,READFAIL,2    [ READ REQUIRED BLOCK
34B2 ...      MHUNTW   2,BSTB,BREAD        [ FIND THE BLOCK READ
34B6 ...      BNG   2  READFAIL            [ READFAIL IF ABSENT 
34B= ...      LDX   3  2
34BB ...      LDX   2  FX2  
34BG ...      ADX   7  FX1  
34BQ ...      TOPFCB2  1                   [ ELSECHECK RECORD HEADERS   
34B^ ...      CHECKBL   1,3,NOTCORUPT      [ J. TO %C IF O.K.   
34C8 ...      LDX   2  FX2                 [ ELSE RECORD HEADERS CORRUPT
34C# ...      LDX   0  BACK1(3) 
34CD ...      STO   0  ACOMMUNE2(2)        [ SAVE RES. NO. AND BLOCK NO.
34CL ...      LDX   0  BACK2(3) 
34D4 ...      STO   0  ACOMMUNE3(2)        [ FOR LATER USE BY READFAIL  
34D? ...      TOPFCA2  3
34DG ...      LDX   0  AWORK1(2)           [ NO. OF REPEATS DONE SO FAR 
34DP ...      SBN   0  5                   [ IF WE HAVE DONE 5 GIVE UP  
34DY ...      BZE   0  TRYNXT              [ AND TRY NEXT BLOCK 
34F7 ...      MFREE    BSTB,BREAD          [ ELSE   
34FB ...      LDN   0  1                   [ INCREASE COUNT OF REPEATS  
34FK ...      ADS   0  AWORK1(2)           [ AND GO BACK TO TRY AGAIN   
34FS ...      BRN      TRYNXTBLK
34G3 ...NOTCORUPT   
34G= ...      NAME     3,FILE,FURB         [ BLOCK IS O.K. SO RENAME IT 
34GF ...      TOPFCA   2
34GN ...      ADX   2  FBACKPOINT(2)
34GX ...      CHAIN    3,2                 [ AND CHAIN AFTER THE FSTACK BLOCK   
34H6 ...      BRN      QSTEPC              [ J. TO REPEAT QSTEPC
34H* ...READFAIL
34HB ...      ADX   7  FX1  
34HC ...      TOPFCB2  1
34HD ...      STO   3  ACOMMUNE3(2) 
34HF ...      LDX   0  BSPRE(1) 
34HG ...      STO   0  ACOMMUNE2(2)       [STORE RES + BLK NOS FOR READFAIL 
34HJ ...      DOWN     READFAIL,4          [ TO OUTPUT READFAIL MESSAGE 
34HR ...      TOPFCA   3
34J2 ...      BRN      TOTRYNXT            [ GIVE UP & TRY NEXT BLOCK   
34J9 ...TRYNXT  
34JD ...      DOWN     READFAIL,3          [ OUTPUT CORRUPT MESSAGE 
34JM ...      MFREE    BSTB,BREAD          [ AND
34JW ...TOTRYNXT
34K5 ...      LDX   0  FREADBLOCK(3)       [ INCREMENT BLOCK NO. PTR.   
34K# ...      ADN   0  1
34KH ...      STO   0  FREADBLOCK(3)
34KQ ...      STOZ     AWORK1(2)           [ REINITIALISE COUNT OF REPEATS  
34K^ ...      BRN      TRYNXTBLK           [ TRY NEXT BLOCK 
34MB    [   
35LL    [***********************************************************************
366=    [   THIS ROUTINE SETS UP A GMON ASET BLOCK FOR MESSAGE PARAMETERS   
375G    [     ON ENTRY  X5=> SIZE OF BLOCK  
37K6    [               X7 =>LINK   
384Q    [   
38JB    OUTBLOCK
3942          SBX   7  FX1  
39HL          OUTBLOCK 5
3=3=          STEPAGAIN 
3=GW          ADX   7  FX1  
3?2G          EXIT  7  0
3?G6    [   
3?^Q    [***********************************************************************
3#FB ...[ THIS ROUTINE PACKS A PARAMETER INTO A GMON ASET BLOCK 
3#^2    [   ON ENTRY   X2 = ADDRESS OF PARAMATER DATA   
3*DL    [              X5 = LENGTH OF DATA  
3*Y=    [              X6 = LPDC CHARACTER  
3BCW    [              X7 = LINK
3BXG    OUTPACK 
3CC6          SBX   7  FX1  
3CWQ          OUTPACKX 2,5,6
3DBB          ADX   7  FX1  
3DW2          EXIT  7  0
3DXP ...[   
3D^D ...[***********************************************************************
3F37 ...[     ROUTINE TO SEARCH FOR THE DIRECTORY ENTRY OF THE FILE WHOSE   
3F4W ...[     LOCALNAME IS SPECIFIED BY 3 WORDS AFTER THE LINK ADDRESS. 
3F6K ...[     BRANCHES TO 'XFILEBENT' IF IT IS NOT FOUND OR IF FORMAT IS
3F8# ...[     WRONG I.E. BLOCKS & INDEX RECORDS DISAGREE WITH ECOPS OR  
3F=3 ...[     THERE ARE FEWER TRAPS RECORDS THAN ENUSE ETC. 
3F?Q ...[   
3F*L    SERCHFFILE  
3FT=          LDX   3  7                 [ SAVE LINK IN X7  
3G#W          LDX   4  0(3)              [ PUT NAME OF FILE THAT
3GSG          LDX   5  1(3)              [ WE ARE SEARCHING FOR INTO
3H#6          LDX   6  2(3)              [ X4-X6
3HF# ...      SBX   7  FX1               [ DATUMISE LINK
3HLG ...      STO   7  AWORK2(2)         [ AND SAVE IT  
3HRQ    NEXTRECORD  
3J?B ...      CALL  7  QSTEPC            [ PTR. TO NEXT RECORD  
3JR2          BZE   3  XFILEBENT         [ NOT FOUND IF E.O.F.  
3K=L          LDX   1  EDESCRIBE(3) 
3KQ=          BNZ   1  NEXTRECORD        [TRY AGAIN IF NOT NAMERECORD   
3L9W          TESTNAMX 3,4,ELOC1N(3),NEXTRECORD,1   
3LPG          TOPFCA2  1                 [ WE HAVE FOUND NAME REC. OF OUR FILE  
3M96          LDX   4  FREADBLOCK(1)     [ STORE BLOCK  POINTER 
3MNQ ...      SLL   4  12                [  
3N8B ...      ADX   4  FREADWORD(1)      [ TO AVOID 
3NN2          STO   4  AWORK3(2)         [ LATER BACKSPACING TO NAME REC.   
3P7L          LDX   5  ECOPSN(3)         [  
3PM=          SRL   5  15                [ NUMBER OF BLOCKS FOR LASER CHECK 
3Q6W          LDX   6  ENUSEN(3)         [ NUMBER OF TRAPS FOR LATER CHECK  
3QLG          LDN   0  #1000
3R66          ANDX  0  EINF2N(3)
3RKQ          STO   0  AWORK4(2)         [ NON ZERO IF INDEXED  
3S5B ...      CALL  7  QSTEPC            [ ON TO BLOCKS RECORD  
3SK2          BZE   3  XFILEBENT         [ EROR IF E.O.F.   
3T4L          LDX   4  FRH(3)   
3TJ=          SBN   4  2
3W3W          SBX   4  5                 [ COMPARE LENGTH WITH ECOPS
3WHG          BNZ   4  XFILEBENT         [ IF BLOCKS REC. IS THE WRONG LENGTH   
3X36          LDX   0  AWORK4(2)
3XGQ          BZE   0  NOINDEXG          [ IF UNINDEXED 
3Y2B ...      CALL  7  QSTEPC            [ ON TO INDEX RECORD   
3YG2          BZE   3  XFILEBENT         [ ERROR IF E.O.F.  
3Y^L          LDCT  4  #200 
3^F=          ANDX  4  EDESCRIBE(3) 
3^YW          BZE   4  XFILEBENT         [ ERROR IF NOT AN INDEX RECORD 
42DG    NOINDEXG
42Y6          BZE   6  NOTRAPS           [ J. IF NO TRAPS EXPECTED  
43CQ    NEXTTRAP
43XB ...      CALL  7  QSTEPC            [ TO NEXT TRAPS RECORD 
44C2          BZE   3  XFILEBENT         [ ERROR IF E.O.F.  
44WL          LDX   0  FRH(3)   
45B=          SBN   0  5                 [ CHECK RECORD HEADER  
45TW          BNZ   0  XFILEBENT         [ ERROR IF NOT 5 WORD TRAPS RECORD 
46*G          LDX   0  ETRUSER1N(3)      [ CHECK USERNAME STARTS WITH ALPHA 
46T6          BPZ   0  XFILEBENT         [ J. IF NOT A VALID USERNAME   
47#Q          BCT   6  NEXTTRAP          [ LOOP ROUND FOR NEXT TRAPS RECORD 
47SB    NOTRAPS 
48#2          TOPFCA2  1
48RL ...      LDSA     4,AWORK3(2)       [ RECOVER READING POINTERS 
49?= ...      STO   4  FREADWORD(1)      [ FOR  
49QW          LDX   4  AWORK3(2)         [ NAMERECORD AND PUT   
49^6 ...      SRL   4  12                [ INTO 
4=7B ...      STO   4  FREADBLOCK(1)     [ THE FCA  
4=*L ...      LDX   7  AWORK2(2)
4=HW ...      ADX   7  FX1  
4=Q6          EXIT  7  3                 [ EXIT PAST LOCALNAME PROVIDED 
4?PB    Z1BACKMAP   
4?T? ...[   
4?^8 ...[************************************************************ Z1BACKMAP 
4#55 ...[   
4#92 ...[         MAIN ENTRY POINT DOWN FROM SETUP TO PERFORM   
4##X ...[             THE INITIALISATION PHASE OF BACKMAP   
4#DS ...[   
4#JP ...      LOCKC    2,£                  [ LOCK BSA/CHAPTER ACT. 
4#NL ...      LDX   2  FX2                  [ AND STORE PTR. TO IT SO   
4#SH ...      STO   2  BSACHAPTR            [ SLAVES CAN FIND IT.   
4#YD ...      LDN   0  0
4*4* ...      BMSTATS  0                    [ SEND STATISTICS TO JOURNAL
4*6* ...#UNS AMTGR  
4*8* ...      BS       ,BFREEBS           [ SHOW BACKING SORE TO BE FREED   
4*=* ...      SETNCORE FCBLEN,3,FILE,FCB,,1    [ SET UP AN FCB FOR MASTER   
4*** ...      LDN   0  FCBRING(3)   
4*D* ...      STO   0  FCBRING(3)          [SET EMPTY   
4*H* ...      STO   0  FCBRING+1(3) 
4*L* ...      LDCT  0  #400         [MASTERS FCB NUMBER 
4*P* ...      STO   0  BACK2(3) 
4*S* ...      STOZ     BACK1(3) 
4*X* ...      STOZ     FBLMOD(3)
4B2* ...      LDN   1  FBLMOD(3)
4B5* ...      LDN   2  FBLMOD+1(3)  
4B8* ...      MOVE  1  BSPRE-FBLMOD           [ ZEROISE FCB 
4B?C ...      LDX   1  FX1  
4BC# ...      ADN   1  MAST 
4BH9 ...      LDN   2  FUSER1(3)
4BM6 ...      MOVE  1  9                  [ MOVE IN SUPERIOR USER + USER NAMES  
4BR3 ...      LDN   0  FBLKS-A1           [ 
4BWY ...      STO   0  FBLMOD(3)          [ START OFF WITH  
4C2T ...      STO   0  FUSEBL(3)          [ EMPTY FILE  
4C6Q ...      LDN   0  FILESIZE 
4C=M ...      STO   0  FSIZE(3)           [ STORE MAX. FILESIZE 
4CBJ ...      NGS   0  CMOD(3)            [ MAKE APPEND PTR. -VE.   
4CGF ...      MBS      3,BFDIR,BFHALF,BFSER  [ SET RELEVANT BITS
4CLB          CHAIND   3,BFILE               [ CHAIN IN FILE CHAIN  
4D62          SETNCORE FDTLEN+1,3,FILE,FDT   [ FOR RETRIEVAL SYSTEM 
4DKL          STOZ     A1(3)                 [ AND  
4F5=          CHAIND   3,BOLC                [ CHAIN IN OFFLINE CHAIN   
4FJW          DOWN     BACKROOM,1            [ SET UP MHPPING BLOCKS
4FL? ...      SETNCORE 14,3,FI,FRESTUSER     [ SET UP FRESTUSER FOR ANY 
4FMN ...      STOZ     A1(3)                 [ PARTIAL RESTORES AND 
4FP5 ...      LDN   1  A1(3)                 [ INITIALISE IT
4FQG ...      LDN   2  FRCNT(3) 
4FRX ...      MOVE  1  5
4FT# ...      LDX   0  ACES 
4FWP ...      STO   0  FRUSE(3) 
4FY6 ...      STO   0  FRUSE+1(3)   
4F^H ...      STO   0  FRUSE+2(3)   
4G2Y ...      CHAIN    3,BMISC+1           [ CHAIN IN MISCELLANEOUS CHAIN   
4G4G          CALL  7  OUTPAR   
4GJ6          LDN   4  G3MARK              [ MARK   
4H3Q          LDN   2  4
4HHB          LDN   5  1
4J32          LDN   6  JPDNUMA  
4JGL          CALL  7  OUTPACK  
4K2=          LDN   2  4
4KFW          LDEX  4  GVERSION            [ VERSION
4K^G          LDN   5  1
4LF6          LDN   6  JPDNUMB  
4LYQ          CALL  7  OUTPACK  
4MDB          LDN   2  4
4MY2          LDN   4  0
4NCL          BNSJ     NSJ  
4NX=          LDN   4  1
4PBW    NSJ 
4PWG          LDN   6  JPDSWITCH
4QB6          CALL  7  OUTPACK  
4QF= ...      LDN   2  EXECNAME 
4QJB ...      LDN   5  2
4QMG ...      LDN   6  JPDVARCHAR   
4QQL ...      CALL  7  OUTPACK  
4QTQ          LDX   3  RESTART(1)   
4R*B          CALL  7  MONOUT              [SJ RESTARTED MESSAGE
4RT2    [CHECK IF GENERAL RESTORE REQUIRED  
4S#L          STOZ     AWORK1(2)
4SS= ...      ACROSS   BMQUEST,1
5D*=    RESTY   
5R52    RESTA2  
5RJL          DOWN     RESTOREA,2   
5SHW          LDX   7  ACOMMUNE1(2) 
5T3G          STO   7  FSMARK(2)
5T65 ...      LOCKC    2,£  
5T8N ...      LDX   2  FX2  
5T?? ...      STO   2  BSACHAPTR
5T*W ...      LDN   0  1
5TDF ...      BMSTATS  0
5TH6 ...      CALL  7  OUTPAR   
5W2Q ...      LDN   2  JINCLAST 
5WGB          LDN   5  1
5X22 ...      LDN   6  JPDINCNUM
5XFL          CALL  7  OUTPACK             [INCREMENT NUMBER
5X^=          LDX   3  RESTORE(1)   
5YDW          CALL  7  MONOUT              [RESTORED MESSAGE TO JOURNAL 
5YNN ...      MFREEALL BSTB,FBSIB   
5YYG          LDX   7  FSMARK(2)
5^D6    NR  
5^XQ          STOZ     JOBNUMBER
62CB    [READ & CHECK :MASTERS DIRECTORY ENTRY  
62X2          LDN   1  BTHREE   
63BL          LDN   2  ADMASTDIR
63W=          BACKREAD ,BSBS,,1 
64*W          MHUNTW   3,BSTB,BREAD 
64TG          LDEX  0  EREC(3)  
65*6          SBN   0  FRDE 
65SQ          BNZ   0  MASA 
66#B          TESTNAMX 3,NMAST(1),EUSE1(3),MASA,6   
66S2          BWNZ     GINCTSN,VERSION  
67?L          LDX   7  EVERSION(3)  
67R=    VERSION 
68=W          STO   7  EVERSION(3)  
6#MG          BWZ      GINCTSN,NOTREST     [J IF NO GENERAL RESTORE 
6*76          BS       3,BEBMUWB           [REMEMBER RESTORE IF SUBSEQUENT RESTA
6*LQ          LDCT  0  #200                [INVERT SWITCH & COPY ENTRY TO 2ND 1/
6B6B          ERS   0  EREC(3)  
6BL2          LDN   4  A1(3)
6C5L          LDN   5  GSBS/2+A1(3) 
6CK=          MOVE  4  GSBS/2   
6D4W          BRN      WRITE
6DJG    NOTREST 
6FHQ          LDX   7  EREC(3)  
6G3B          ERX   7  GSBS/2+EREC(3)   
6GH2          BZE   7  NMOVE               [BOTH THE SAME-NO CHANGE 
6H2L          LDN   4  GSBS/2+A1(3) 
6HG=          LDN   5  A1(3)
6H^W          MOVE  4  GSBS/2              [USE 2ND ENTRY   
6JFG    NMOVE   
6J^6          LDCT  0  #200 
6KDQ          ERS   0  EREC(3)  
6KYB          ERS   0  GSBS/2+EREC(3)   
6LD2          BWNZ     AWORK1(2),WASAST    [J IF 'RESTORE?' ASKED   
6LXL          JBC      WASAST,3,BEBM       [OR IF NO PREVIOUS BREAK 
6MC=    ZONK
6MWW          FREECORE 3                   [ IF ANSWER NO   
6NBG ...      ACROSS   BMQUEST,9
6NW6    WASAST  
6P*Q          JBC      MASOK,3,BEBMUWB     [J UNLESS PREVIOUS BREAK DURING RESTO
6PKJ ...      MONOUT   BMFORCEGR
6PTB    REPREST 
6Q*2          LDN   5  0
6QSL ...      ACROSS   BMQUEST,10          [TO RESET FRESTUSER & REPEAT RESTORE?
6R#=    MASOK   
6RCB ...      JBC      NOTPRFAILED,3,BEPARTRES  
6RGG ...      LDX   2  BFILE
6RKL ...      BS       2,BFPARTRES  
6RNQ ...NOTPRFAILED 
6RRW          LDX   6  EREC+FRDE(3) 
6S?G          BZE   6  MASA 
6SR6          SMO      6
6T=Q          LDX   5  EREC+FRDE(3) 
6TQB          BZE   5  MASA 
6W=2          SETUPCOR 5,1,FI,FINDEXF   
6WPL          MHUNTW   3,BSTB,BREAD 
6X9=          ADN   1  EREC 
6XNW          SMO      6
6Y8G          LDN   0  EREC+FRDE(3) 
6YN6          SMO      5
6^7Q          MOVE  0  0                   [MOVE INDEX RECORD INTO BLOCK
6^MB          ADN   6  FCBLEN-2 
7272          ALTLEN   BFILE,6             [FOR BLOCK NUMBERS   
72LL          MHUNTW   3,BSTB,BREAD 
736=          LDX   1  BFILE
73KW          LDN   0  INDEXDIR 
745G          ORS   0  FINFC(1) 
74K6          STO   6  FBLMOD(1)
754Q          STO   6  FUSEBL(1)
75JB          LDN   0  EREC+FRDE+1(3)   
7642          ADN   1  BSPRE
76HL          SMO      6
773=          MOVE  0  512-FCBLEN+1 
77GW          MHUNTW   1,FI,FINDEXF 
782G          LDX   2  BFILE
78G6          CHAIN    1,2                 [CHAIN INDEX BLOCK AFTER MASTER'S FCB
78^Q    WRITE   
79FB          LDX   1  BFILE
79^2          LDX   0  ELASTJAM(3)  
7=DL          STO   0  FLASTJAM(1)  
7=Y=          LDX   0  EGMTBS(3)
7?CW          STO   0  FGMTBS(1)
7?XG          BS       3,BEBM              [BACKMAP IN PROGRESS 
7#C6          ORS   0  GSBS/2+EINF1(3)  
7#WQ          CHAIN    3,2  
7*BB          CALL  7  WRITEBACK
7*W2          SETNCORE 6,1,FILE,FLOCNB     [FOR USE THROUGHOUT BACKMAP  
7B*L          OPENMAS  XBR,GENERAL  
7BT=          BWZ      GINCTSN,NRSET
7C#W          DOWN     BACKROOM,1          [RECREATE MAPPING BLOCKS 
7CSG    NRSET   
7D#6 ...      CALL  7  XCHECKLF 
7DRQ          CALL  7  SERCHFFILE          [TO FIND AND CHECK DICTIONARIES  
7F?B                   12HDICTIONARY       [ENTRY IN MASTER 
7FR2          READAGAIN 
7G=L          MHUNTW   2,FILE,FLOCNB       [SET UP FLOCNB FOR OPENRELN  
7GQ=          MHUNTW   3,FILE,FRB   
7H9W          NAME     3,FILE,ENT   
7HPG          ADN   2  A1   
7J96          LDN   1  ELOC1(3) 
7JNQ          MOVE  1  5
7K8B          LDX   4  ELAN(3)  
7KN2          STO   4  5(2) 
7L7L          OPENRELN XBR,GENERAL,DIROPEN [DICTIONARY  
7LM=          TESTRPN2 OK,XOPENFAIL 
7LPT ...      CALL  7  XCHECKLF 
7LSD ...      STOZ     AMAPDEPTH(2) 
7LX3 ...SETLOCK 
7L^L ...      LDX   2  FX2  
7M49 ...      POP      SETLOCK,2,FTABWAIT   
7M6S ...      GETACT   BSA,AUTOMAP  
7M9C ...      LDX   3  BPTR(2)  
7M#2 ...      LINKSET  3,XDICTLINK(1)   
7MBK ...      LOCK     3
7MF8 ...      CHANGEFI 3
7MHR ...      LDX   3  BPTR(2)  
7MLB ...      UNLOCK   3
7MN^ ...      LDX   2  3
7MRJ ...      FPUT  
7MW7 ...      LDX   2  FX2  
7MYQ ...      LDN   0  1
7N3* ...      ADS   0  AMAPDEPTH(2) 
7N66          REWIND                       [MASTER  
7NKQ          CALL  7  SERCHFFILE   
7P5B                   12HSYSTEM
7PK2          READAGAIN                    [SYSTEM NAME RECORD  
7Q4L          MHUNTW   2,FILE,FLOCNB
7QJ=          MHUNTW   3,FILE,FRB   
7R3W          NAME     3,FILE,ENT   
7RHG          ADN   2  A1   
7S36          LDN   1  ELOC1(3) 
7SGQ          MOVE  1  5
7T2B          LDX   4  ELAN(3)  
7TG2          STO   4  5(2) 
7T^L          OPENRELN XBR,READ,DIROPEN 
7WF=          TESTRPN2 OK,XOPENFAIL        [IF NOT OPENED   
7WP4 ...      CALL  7  XCHECKLF 
7WYW          CALL  7  SERCHFFILE   
7XDG                   12HSERIAL
7XY6          READAGAIN                    [SERIAL NAME RECORD  
7YCQ          MHUNTW   2,FILE,FLOCNB       [SET UP FLOCNB FOR OPENRELN  
7YXB          MHUNTW   3,FILE,FRB   
7^C2          NAME     3,FILE,ENT   
7^WL          ADN   2  A1   
82B=          LDN   1  ELOC1(3) 
82TW          MOVE  1  5
83*G          LDX   4  ELAN(3)  
83T6          STO   4  5(2) 
83XC ...      OPENRELN XBR,GENERAL,DIROPEN  
83^N ...      CALL  7  XCHECKLF 
843^ ...      TESTRPN2 OK,XOPENFAIL 
846= ...      GETACT   BSA,AUTOMAP  
848H ...      LDX   3  BPTR(2)  
84=S ...      LINKSET  3,XSERLINK(1)
84*5 ...      LOCK     3
84CB ...      CHANGEFI 3
84FM ...      LDX   3  BPTR(2)  
84HY ...      UNLOCK   3
84L9 ...      LDX   2  3
84NG ...      FPUT  
84QR ...      LDX   2  FX2  
84T4 ...      LDN   0  1
84X* ...      ADS   0  AMAPDEPTH(2) 
84^L ...      CALL  7  SERCHFFILE   
853X ...               12HINCINDEX  
8568 ...      READAGAIN 
858F ...      MHUNTW   2,FILE,FLOCNB
85=Q ...      MHUNTW   3,FILE,FRB   
85*3 ...      NAME     3,FILE,ENT   
85C# ...      ADN   2  A1   
85FK ...      LDN   1  ELOC1(3) 
85HW ...      MOVE  1  5
85L7 ...      LDX   4  ELAN(3)  
85ND ...      STO   4  5(2) 
85QP ...      OPENRELN XBR,GENERAL,DIROPEN  
85T2 ...      TESTRPN2 OK,XOPENFAIL 
85X? ...      CALL  7  XCHECKLF 
85^J ...      FILEMOVE 0,-1 
863T ...      CLOSEFRBS                     [SYSTEM 
8666 ...      VOP      2,FTABWAIT   
868C ...      REWIND
86?=          SETNCORE 150,1,FI,FLIST      [SET UP BLOCK FOR SFTS   
86QW          STOZ     A1(1)
872N ...      LDX   6  CFREE
87=G ...      ADX   6  ACHAP
87G# ...      SRL   6  10   
87Q6 ...      SBN   6  10   
87^Y ...      SMO      FX1  
889Q ...      DVS   5  SLAVEK   
88FJ ...      STO   6  A1+2(1)  
88PB          STOZ     A1+1(1)  
88XL ...      CHAIN    1,BMISC+1
894# ...      OFF      BMBLKTWICE   
895W ...      SETNCORE 8,3,FI,FONCE 
897D ...      STOZ     A1(3)
8992 ...      CHAIN    3,BMISC+1
89=P ...      LDN   0  2
89#D ...      BMSTATS  0
89B7 ...WAITFORBLOX 
89CW ...      LDX   0  AMAPDEPTH(2) 
89FK ...      BZE   0  READY
89H# ...      COOR3    BMAPACT  
89K3 ...      BRN      WAITFORBLOX  
89LQ ...READY   
89NL          ACROSS   BMAPONE,1
8=8=    [   
8=MW ...[       ASK FOR REQUIRED RESIDENCE TO BE LOADED.
944B    NEEDFILE
94J2 ...      ACROSS   BMQUEST,2
95H= ...OUTNUM  
962W ...      LDN   2  4
96GG          LDN   5  1
9726          LDN   6  JPDNUMA  
97FQ          CALL  7  OUTPACK  
97^B          BRN      OUTMON   
98F2    MASA
98YL ...      JBSS     WANTREST,3,BEBM     [J IF ALREADY FAILED IN BACKMAP  
99D=          ORS   0  GSBS/2+EINF1(3)  
99XW          CALL  7  WRITEBACK
9=CG    #SKI  K6BACKMAP>199-199 
9=X6          GEOERR   1,MASWRECK   
9?BQ    #SKI  K6BACKMAP<200-200 
9?WB          LDX   3  MASWRECK(1)  
9#B2    OUTMON  
9#TL          CALL  7  MONOUT   
9*5D ...      EMSCONWT  
9**=          GRELOAD   
9*SW ...WANTREST
9B#G ...      LDX   3  MASWRECK(1)  
9BS6 ...      CALL  7  MONOUT   
9C?Q ...      ACROSS   BMQUEST,10   
9J82    [   
9JML ...XFILEBENT   
9K7= ...      LDX   2  AWORK2(2)
9KLW ...      ADX   2  FX1  
9L6G ...      LDN   5  3
9LL6 ...      LDN   6  JPDLOCNAME   
9M5Q ...      CALL  7  OUTPACK  
9MKB ...      LDX   3  NOTAVAIL(1)  
9N52 ...      CALL  7  MONOUT   
9N#S ...      EMSCONWT  
9NJL ...      GEOERR   1,SYSFILE?   
=GYB    XBR 
=HD2          GEOERR   1,BACKMAP
=HXL    XOPENFAIL   
=JC=          GEOERR   1,OPENFAIL   
=JWW    [   
=KBG          MENDAREA BMAPGAP,K99BACKMAP   
=KW6    #END
^^^^ ...071254750004
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1