{{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