{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: BACKMAP864)}} ====== BACKMAP864 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BACKREAD|BACKREAD]], [[george:macro:BMSTATS|BMSTATS]], [[george:macro:BNSJ|BNSJ]], [[george:macro:BS|BS]], [[george:macro:BWNZ|BWNZ]], [[george:macro:BWZ|BWZ]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHAIND|CHAIND]], [[george:macro:CHECKBL|CHECKBL]], [[george:macro:CLOSEFRBS|CLOSEFRBS]], [[george:macro:COOR3|COOR3]], [[george:macro:DOWN|DOWN]], [[george:macro:EMSCONWT|EMSCONWT]], [[george:macro:FILEMOVE|FILEMOVE]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:GRELOAD|GRELOAD]], [[george:macro:HUNT2J|HUNT2J]], [[george:macro:JBC|JBC]], [[george:macro:JBSS|JBSS]], [[george:macro:LDSA|LDSA]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LOCK|LOCK]], [[george:macro:LOCKC|LOCKC]], [[george:macro:MBS|MBS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEALL|MFREEALL]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:NAME|NAME]], [[george:macro:OFF|OFF]], [[george:macro:OPENMAS|OPENMAS]], [[george:macro:OPENRELN|OPENRELN]], [[george:macro:OUTBLOCK|OUTBLOCK]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTMON|OUTMON]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:OUTPACKX|OUTPACKX]], [[george:macro:OUTPAR|OUTPAR]], [[george:macro:POP|POP]], [[george:macro:QSTEPC|QSTEPC]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:READY|READY]], [[george:macro:RESTART|RESTART]], [[george:macro:REWIND|REWIND]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPFCA|TOPFCA]], [[george:macro:TOPFCA2|TOPFCA2]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:UNLOCK|UNLOCK]], [[george:macro:VOP|VOP]] 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