{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: NEXTUNIT867)}}
====== NEXTUNIT867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERR|COMERR]], [[george:macro:EXCHOFE|EXCHOFE]], [[george:macro:EXMESS|EXMESS]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETAREA|GETAREA]], [[george:macro:GETWORD|GETWORD]], [[george:macro:HUNTW|HUNTW]], [[george:macro:ILLEGAL|ILLEGAL]], [[george:macro:LOCKM|LOCKM]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFINDEXOF|MFINDEXOF]], [[george:macro:MFINDSU|MFINDSU]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MUSEST|MUSEST]], [[george:macro:OPTMESS|OPTMESS]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:PLOCKSU|PLOCKSU]], [[george:macro:PROGBRKIN|PROGBRKIN]], [[george:macro:RELST|RELST]], [[george:macro:RUNPROG|RUNPROG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:STEPBACK|STEPBACK]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TRACE|TRACE]], [[george:macro:TWAIT|TWAIT]], [[george:macro:UNLOCKSU|UNLOCKSU]], [[george:macro:USEST|USEST]], [[george:macro:USESTX|USESTX]], [[george:macro:WORDFIN|WORDFIN]]
228= ...#SEG NEXTUNIT867
22BG ...#
22JQ ...# COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
22R2 ...#
22^= #LIS K0NEXTUNIT
23DW 8HNEXTUNIT
23YG # THIS SEGMENT IS USED BY SCEX TO GET NEXT AREA UNIT
24D6 # INITIAL ENTRY AT K1
24XQ # SUBSEQUENT ENTRIES AT K2
25CB # K3 IS ENTRY TO GENERAL ERROR ROUTINE
25X2 #
26BL #
26W= SEGENTRY K1NEXTUNIT,QK1NEXT
27*W SEGENTRY K2NEXTUNIT,QK2NEXT
27TG SEGENTRY K3NEXTUNIT,QK3NEXT
28*6 SEGENTRY K4NEXTUNIT,QK4NEXT
28SQ #
29#B #
29DK ...XEWSUTC +EWSUTC [SU NOT SUITABLE-TRAPS CLOSED
29G2 ...XEWSUNE +EWSUNE [SU NOT SUITABLE-NO EXOFILE ENTRY
29HC ...XEWSTOINS +EWSTOINS [CANT EXTEND SECURE TO INS SU
29JS ...XEWINSTOS +EWINSTOS [CANT EXTEND INS TO SECURE SU
29ML ...#
29P3 ...#
29QD ...#
29S2 # BREAKIN ON GETTING AREA UNIT
29YN ...RPB NGNC 5 1 [IPB DOWN ENTRY
2=2= ...XBRK LDN 5 0 [BREAKIN
2=3S ...XBRK2 MHUNTW 3,EWDAS,GEXD
2?=W MFINDEXOF 1,CEFN(3)
2?QG LDCT 0 #40
2#=6 ANDX 0 EMARK(3)
2#PQ BZE 0 XH7 [J IF EXTEND
2*9B FREECORE 1 [ELSE SCRATCH,FREE EXOF
2*P2 BRN XH5 [AND END
2B8L XH7 LDN 6 1
2BN= SBS 6 FIP+5(1) [REMOVE DUMMY FILE AREA
2C7W LDX 0 EMARK(3)
2CMG BNG 0 XH5 [J TO END IF SCRATCH FILE
2D76 MFINDSU 1,HMUNIT(3)
2DLQ SBS 6 CEXTEND(1) [ELSE SUBTRACT 1 FROM COUNT OF EXTEND
2F6B RELST HMUNIT(3) [RELEASE HOME UNIT
2FL2 XH5 MHUNTW 3,EWDAS,GEXD
2G5L LDCT 6 #100
2GK= ANDX 6 EMARK(3)
2H4W FREECORE 3 [FREE GEXD
2H9J ... BNZ 5 RPB1 [J IF NOT BREAKIN
2H?6 ...XR5 BZE 6 XH6 [J IF PERI
2H#N ... MHUNTW 3,EWDAS,ASCOL
2HB= ... FREECORE 3
2J46 COMBRKIN
2JHQ XH6 STEPBACK [BREAKIN
2K3B PROGBRKIN
2K7K ...RPB1 TWAIT 7,XR5 [WAIT FOR IPB
2K92 ... BNZ 6 XCOM [J IF COMMAND
2K=C ... STEPBACK [
2K?S ... RUNPROG [PROG REPEATS PERI
2K*9 ...XCOM MHUNTW 3,EWDAS,ASCOL [SEARCH FOR SAVED''GEXD'
2K*K ... SETUPCORE ALOGLEN(3),3,EWDAS,GEXD [SET UP GEXD
2K*^ ... MHUNTW 1,EWDAS,ASCOL
2KB* ... LDN 2 A1(1)
2KBP ... LDN 3 A1(3)
2KC5 ... SMO ALOGLEN(1)
2KCF ... MOVE 2 0 [COPY ASCOL TO GEXD
2KD3 ... ACROSS SCEX,1 [AND TRY OL SCRATCH AGAIN
2KH2 #
2L2L #
2L3F ...#
2L3Q ...# SUBROUTINE TO CHECK WHETHER THE USER HAS AN APPEND
2L43 ...# TRAP TO EXOFILE ENTRY ICLSCAFILE.
2L4# ...# EXIT+0 IF TRAPS OK AND EXOFILE TO BE EXTENDED IS
2L4K ...# SECURE OR A SCRATCH FILE AND IF SU IS INSECURE
2L4W ...# AND EXOFILE TO BE EXTENDED IS INSECURE OR A SCRATCH FILE.
2L57 ...# EXIT+1 IF INCOMPATABILITY OF ANY KIND WHEREUPON
2L5D ...# A MESSAGE IS OPTMESS'D GIVING REASONS.
2L5P ...#
2L62 ...XCHECK
2L6? ... SBX 4 FX1 [PRESERVE LINK
2L6F ... SMO FX2
2L6M ... STO 5 AWORK1
2L6T ... LDN 5 CAPPEND [CHECK WHETHER USER HAS APPEND
2L76 ... EXCHOFE ICL,7,5,XCHK4A [TRAPS TO E.E. ICLSCAFILE
2L7C ... MHUNTW 3,EWDAS,GEXD
2L7N ... TESTREP2 OK,XCHK3,NOFILE,XCHK2,NOTRAP,XCHK1
2L7^ ... GEOERR 1,XOFREPER
2L8= ...#
2L8H ...# NOTRAP REPLY FROM EXCHOFE
2L8S ...XCHK1
2L95 ... OPTMESS XEWSUTC(1),7 [SU UNSUITABLE - TRAPS CLOSED
2L9B ... BRN XCHK4
2L9M ...#
2L9Y ...# NOFILE REPLY FROM EXCHOFE
2L=9 ...XCHK2A
2L=G ... OPTMESS XEWSUNE(1),7 [SU UNSUITABLE - NO E.E.
2L=R ... BRN XCHK4
2L?4 ...XCHK2
2L?* ... LDX 0 EDSQ [LEVEL OF SECURITY
2L?L ... BNG 0 XCHK2A [J IF FULL IN USE
2L?X ... LDX 0 EXOTRAP(3) [TRAPS RECORD PRESERVED SINCE OPEN
2L#8 ... BNG 0 XCHK5 [J IF INSECURE
2L#F ... OPTMESS XEWSTOINS(1),7 [CANT EXTEND ONTO INSECURE SU
2L#Q ... BRN XCHK4
2L*3 ...#
2L*# ...# OK REPLY FROM EXCHOFE
2L*K ...XCHK3
2L*W ... LDX 0 EXOTRAP(3) [TRAPS RECORD
2LB7 ... BPZ 0 XCHK3A [J IF SECURE
2LBD ... LDX 0 EMARK(3)
2LBP ... BNG 0 XCHK3A [J IF SCRATCH FILE
2LC2 ... OPTMESS XEWINSTOS(1),7 [CANT EXTEND INS ONTO SECURE SU
2LC3 ... BRN XCHK4
2LC4 ...XCHK3A
2LC5 ... EXCHOFE ICL,7,,XCHK4A,AW [D&T WRITTEN+ACCESSED FOR ICLSCAFILE
2LC6 ... BRN XCHK4A
2LC? ...XCHK4
2LCJ ... ADN 4 1 [TO EXIT+1
2LCT ...XCHK4A
2LD6 ... MHUNTW 3,EWDAS,GEXD
2LDC ...XCHK5
2LDK ... SMO FX2
2LDR ... LDX 5 AWORK1
2LD^ ... ADX 4 FX1
2LF= ... EXIT 4 0
2LG= #
2L^W # THIS ROUTINE FINDS,GETS ONLINE,AND LOCKS NEXT AREA UNIT,
2MFG # USING INFORMATION IN CSNCT,CSNTAB,CSNP.J TO UGOT WITH
2M^6 # ARUNIT SET IF OK.J TO XEND IF NO MORE.
2NDQ QK1NEXT
2NYB SUNIT [INITIAL ENTRY POINT
2PD2 MHUNTW 3,EWDAS,GEXD
2PXL LDX 0 CSNCT(3)
2QC= BNZ 0 SLIST [J IF SEARCH LIST CASE
2QWW LDX 7 CSNTAB(3)
2RBG BPZ 7 UT1 [J UNLESS ALL-ONLINE CASE
2RW6 STO 7 CSNCT(3) [SET CSNCT -VE,FIRST PASS
2S*Q LDX 7 EOFUNIT(3)
2STB BNZ 7 UT2 [J IF EOFUNIT EXISTS,TO SEARCH IT 1ST
2T*2 BRN SONL [ELSE GO ALL-ONLINE ROUTINE
2TSL UT1 BNZ 7 UT2 [J IF SPECIFIED SERN,TO GET IT
2W#= LDX 7 EOFUNIT(3) [ELSE TAKE EOFUNIT,
2WRW BNZ 7 UT2 [IF THERE IS ONE;
2X?G NGS 3 CSNCT(3) [IF NOT,DO ALL-ONLINE ROUTINE
2XR6 BRN SONL
2XTY ...UT2
2Y6B ... CALL 4 XCHECK [CHECK FOR APPEND TRAPS TO,ICLSCAFIL
2Y98 ... BRN XCHOK1 [J IF OK
2Y#2 ... LDN 5 2 [CANTDO MARKER
2YBS ... BRN UT6
2YFL ...XCHOK1
2YM= ... CALL 4 SERF [FIND DUMMY FILE AREA
2YQB STO 7 FDCELLS(1) [PUT SERN IN DUMMY AREA
2^=2 #SKI K6SCEX>299-299
2^PL TRACE CSNCT(3),FIRSTAR
329= #SKI K6SCEX>399-399
32NW TRACE CSNTAB(3)
338G TXU 7 HMUNIT(3) [J UNLESS HOME UNIT,
33N6 BCS UT3
33WB ... PLOCKSU 7,XBRK,RPB [GET LOCK OUT
34MB UT4 MHUNTW 3,EWDAS,GEXD
3572 STO 7 ARUNIT(3) [PUT SERN IN ARUNIT
35LL BRN UGOT [AND END
366= UT3 LDCT 6 #10
36KW ANDX 6 EMARK(3) [GET *4000 MARKER
36T2 ... USEST 7,UT5,,XBRK,RPB [KEEP UNIT ONLINE IF ONLINE
36XB ...UT4A MHUNTW 3,EWDAS,GEXD
36^Q ... LDX 4 HMUNIT(3)
3746 ... BZE 4 UT4 [J IF NO HOME UNIT
376G ... UNLOCKSU 7 [.ELSE UNLOCK
378W ... LOCKM 7,4,XBRK1,RPB2 [..AND LOCK IN ORDER
37?= ... BRN UT4
37*L ...#
37D2 ...# IPB DOWN DURING LOCKM
37GB ...#
37JQ ...RPB2 LDX 4 ACOMMUNE9(2) [UNIT WE WERE TRYING TO LOCK WHEN
37M6 ... NGNC 5 1 [..IPB WENT DOWN
37PG ...#
37RW ...# BREAKIN DURING LOCKM
37W= ...#
37YL ...XBRK1 LDN 5 0
3832 ...RPB3 RELST 7 [RELEASE AREA
385B ... LDX 7 4
387Q ... BRN XBRK2
39HL UT5 LDN 5 4 [IF NOT ONLINE, (REPBIT=N6)
3=3= BNZ 6 UT6 [J IF MODE *4000 SET
3=GW LDN 5 2 [REPBIT=NF
3?7N ... MUSEST 7,UT6,XBRK,,RPB
3?BL ... BRN UT4A
3*DL UT6 MHUNTW 3,EWDAS,GEXD [CANTDO,OR *4000 SET,
3*Y= ORS 5 EMARK(3) [SET REPBIT
3BCW CALL 4 SERF
3BXG STOZ FDCELLS(1) [CLEAR DUMMY FD CELL
3CC6 LDX 0 CSNCT(3)
3CWQ BNG 0 SONL [J IF ALL-ONLINE CASE
3DBB BRN XEND [ELSE GIVE UP
3HRQ #
3J?B # S/R TO GIVE POINTER TO DUMMY FDCELL
3JR2 SERF MFINDEXOF 1,CEFN(3)
3K=L SERF1 LDEX 0 FIP+5(1)
3KQ= SBN 0 1
3L9W SLL 0 1
3LPG ADX 1 0
3M96 SLL 0 1
3MNQ ADX 1 0
3N8B EXIT 4 0
3NN2 #
3P7L # SEARCH LIST ROUTINE:LIST OF LENGTH [CSNCT] STARTS AT
3PM= # CSNTAB.CSNP IS POINTER TO CURRENT ENTRY;IF 2ND PASS,
3Q6W # B0=1.
3QLG QK2NEXT
3QQP ... MHUNTW 3,EWDAS,GEXD
3QS6 ... LDX 7 HMUNIT(3)
3QTH ... TXU 7 ARUNIT(3)
3QWY ... BCC NHME [J IF AREA=HOME
3QY* ... BZE 7 NHME [OR HOME NOEXISTANT
3Q^Q ... UNLOCKSU 7 [UNLOCK AREA
3R37 ...NHME
3R66 NUNIT [SUBSEQUENT ENTRY FOR ALL CASES:-
3RKQ MHUNT 3,EWDAS,GEXD
3S5B CALL 4 SERF
3SK2 STOZ FDCELLS(1) [CLEAR DUMMY FD CELL
3T4L LDX 7 CSNCT(3)
3TJ= BNG 7 NONL [J IF ALL-ONLINE CASE
3W3W LDX 6 ARUNIT(3)
3WHG TXU 6 HMUNIT(3)
3X36 BCC UT7 [J IF CURRENT AREA UNIT=HOME UNIT
3XGQ RELST 6 [ELSE RELEASE AREA UNIT
3Y2B MHUNTW 3,EWDAS,GEXD
3YG2 UT7 BZE 7 XEND [J IF NO LIST,GIVE UP
3Y^L #SKI K6SCEX>399-399
3^F= TRACE CSNP(3),NUNITL
3^YW LDX 5 CSNP(3) [SEARCH LIST CASE
42DG UT8 ADN 5 1 [UPDATE POINTER
42Y6 LDXC 0 5
43CQ ERX 0 CSNCT(3)
43XB BNZ 0 UT9 [J UNLESS END OF LIST
44C2 BNG 5 XEND [END IF 2ND PASS,
44WL LDCT 0 #10
45B= ANDX 0 EMARK(3)
45TW BZE 0 UT14 [J UNLESS MODE *4000 SET
46*G LDN 0 4
46T6 ORS 0 EMARK(3) [SET REPBIT N6
47#Q BRN XEND [AND END
47SB UT14
48#2 #SKI K6SCEX>299-299
48RL TRACE 5,2ND PASS
49?= LDCT 5 #400 [ELSE START 2ND PASS
49QW UT9 SMO 5
4==G LDX 7 CSNTAB(3) [GET NEXT SERN OUT OF LIST
4=Q6 BZE 7 UT8 [J IF NONE FOR NEXT
4=W* ... CALL 4 XCHECK [CHECK FOR APPEND TRAPS TO ICLSCAFIL
4=XQ ... BRN XCHOK2 [JIF OK
4=^7 ... SMO 5
4?2J ... STOZ CSNTAB(3) [ZEROISE ENTRY
4?3^ ... LDN 4 2
4?5B ... BRN UT12A
4?6R ...XCHOK2
4?9Q CALL 4 SERF
4?PB STO 7 FDCELLS(1) [PUT SERN IN DUMMY FD CELL
4#92 TXU 7 HMUNIT(3)
4#NL BCS UT10 [J IF NOT HOME UNIT,ELSE
4#WW ... PLOCKSU 7,XBRK,RPB [GET LOCK OUT
4*MW BRN UT11 [AND USE THIS UNIT
4B7D ...UT10 USEST 7,UT12,,XBRK,RPB [KEEP ONLINE IF THERE
4B#L ...UT11A MHUNTW 3,EWDAS,GEXD
4BFS ... LDX 4 HMUNIT(3)
4BM2 ... BZE 4 UT11 [J IF NO HOME UNIT
4BS8 ... UNLOCKSU 7
4B^B ... LOCKM 7,4,XBRK1,RPB2 [LOCK IF ORDER
4D62 UT11 MHUNTW 3,EWDAS,GEXD [OK
4DKL SMO 5
4F5= STOZ CSNTAB(3) [CLEAR TABLE ENTRY
4FJW STO 5 CSNP(3) [SAVE POINTER
4G4G STO 7 ARUNIT(3) [SET NEW AREA UNIT
4GJ6 BRN UGOT [END,UNIT GOT
4H3Q UT12 LDN 4 0 [NOT ONLINE,
4HB6 ...UT12A
4HHB BPZ 5 UT13 [J IF FIRST PASS,
4J32 LDN 4 2 [(REPBIT=NF)
4JMS ... MUSEST 7,UT13,XBRK,,RPB [DEMAND UNIT
4JWQ ... BRN UT11A
4LYQ UT13 MHUNTW 3,EWDAS,GEXD [CANTDO,
4MDB ORS 4 EMARK(3) [SET REPBIT
4MY2 CALL 4 SERF
4NCL STOZ FDCELLS(1) [CLEAR DUMMY FD CELL
4NX= BRN UT8 [AND TRY AGAIN
4TRG # INITIAL ENTRY TO SEARCH LIST ROUTINE:-
4W?6 SLIST LDN 5 0 [INITIALISE POINTER
4WQQ #SKI K6SCEX>299-299
4X=B TRACE CSNCT(3),UNITLIST
4XQ2 BRN UT9 [AND ORFT WE GO
4Y9L #
4YP= # SEARCH ALL ONLINE ROUTINE-SUBSEQUENT ENTRY.AREA UNIT
4^8W # IS USED,FIND NEXT SUITABLE UNIT AFTER IT
4^NG #
5286 NONL
52MQ LDX 0 CSNTAB(3)
537B BNG 0 US1 [J IF INITIAL ENTRY
53M2 US2 MFINDSU 2,ARUNIT(3) [FIND ASUC FOR AREA UNIT
546L US3 LDX 5 HMUNIT(3)
54L= LDX 6 ARUNIT(3)
555W NGN 4 1 [MARKER
55KG US5 LDX 2 FPTR(2) [SEARCH FORWARD DOWN CCB CHAIN FOR
5656 #SKI K6SCEX>399-399
56JQ TRACE BACK1(2),NEXT OL
574B TXU 2 CXCC [NEXT SUITABLE UNIT
57J2 BCC US10 [J IF END OF CHAIN,
583L LDX 7 BACK1(2)
58H= BZE 7 US10 [OR NOT AN ASTUC
592W US4 BNG 7 US5 [J IF NOT SUITABLE,IE UNIT IS DEAD,
59GG LDCT 0 #300
5=26 ANDX 0 ASMARK(2)
5=FQ BNZ 0 US5 [OR DISENGAGED OR REDONED.
5=^B TXU 7 EOFUNIT(3)
5?F2 BCC US5 [OR EOF UNIT (ALREADY SEARCHED),
5?YL LDCT 0 #100
5#D= ANDX 0 HSTUN(2)
5#XW BNZ 0 US5 [OR SCRATCH INHIBITED
5*CG CALL 4 SERF [ELSE OK,
5*X6 STO 7 FDCELLS(1) [PUT SERIAL NR IN DUMMY FD CELL
5BBQ #SKI K6SCEX>399-399
5BWB (
5CB2 TXU 7 6
5CTL BCS US11
5D*= GEOERR 1,NEW=OLD?
5DSW US11
5F#G )
5FS6 TXU 7 5
5G?Q BCS US6 [J IF NOT HOME UNIT
5GG2 ... PLOCKSU 7,XBRK,RPB [GET LOCK-OUT
5GSM ... CALL 4 XCHECK [CHECK FOR APP TRAPS TO ICLSCAFILE
5GTY ... BRN XCHOK3
5GX9 ... CALL 4 SERF
5GYG ... STOZ FDCELLS(1) [ZEROISE DUMMY FD CELL
5G^R ... LDN 0 2
5H34 ... ORS 0 EMARK(3) [SET CD MARKER TO INDUCE *DA FAIL
5H4* ... UNLOCKSU 7
5H5L ... MHUNTW 3,EWDAS,GEXD
5H6X ... MFINDSU 2,7
5H88 ... BRN US3
5H9F ...XCHOK3
5H?2 LDN 4 0 [MARKER=OK
5HQL BRN US7
5J== US6 LDX 4 CEFN(3)
5JPW ... USESTX 7,US8,,XBRK,US8
5L8T ... CALL 4 XCHECK
5L8Y ... BRN XCHOK4
5L93 ... LDX 4 CEFN(3)
5L96 ... UNLOCKSU 7
5L99 ... BRN US8
5L9# ...XCHOK4
5L=X ... MHUNTW 3,EWDAS,GEXD
5L?L ... LDX 4 HMUNIT(3)
5L#* ... BZE 4 US10A [J IF NO HOME UNIT
5L*4 ... UNLOCKSU 7
5L*R ... LOCKM 7,4,XBRK4,RPB4 [LOCK IN ORDER
5LBG ... BRN US10A
5LC9 ...RPB4 NGNC 4 1 [IPB DOWN
5LCY ...XBRK4 LDN 4 0 [BREAKIN
5LDM ... LDX 3 ACOMMUNE9(2)
5LFB ... TXU 6 5
5LG5 ... BCC US9A
5LGS ... BZE 6 US9A
5LHH ... RELST 6 [RELEASE SAVED UNIT
5LJ= ...US9A LDX 5 4
5LJ^ ... LDX 4 3
5LKN ... BRN RPB3
5LLC ...US10A
5LNB LDN 4 0 [MARKER,OK
5M82 US10 TXU 6 5
5MML BCC US9 [J IF AREA UNIT=HOME UNIT,
5N7= US7 BZE 6 US9 [OR AREA UNIT ZERO,
5NLW RELST 6 [ELSE FREE AREA UNIT
5P6G US9 MHUNTW 3,EWDAS,GEXD
5PL6 BNG 4 XEND [J IF END
5Q5Q STO 7 ARUNIT(3) [SAVE NEW AREA UNIT
5QKB BZE 4 UGOT [J IF OK TO EXIT
5R52 BRN US2 [ELSE CONTINUE SEARCH FROM NEW ARUNIT
5RJL US8 MFINDEXOF 1,4 [UNIT IN USE BY
5S4= CALL 4 SERF1 [S-TRUSTED,
5SHW STOZ FDCELLS(1) [CLEAR DUMMY CELL
5T3G LDN 4 1 [SET MARKER=CONTINUE SEARCH
5TH6 BRN US10
5W2Q #
5WGB # INITIAL ENTRY POINT TO SEARCH-ALL-ONLINE ROUTINE
5X22 SONL LDN 0 1
5XFL ORS 0 EMARK(3) [SET REPBIT NR IN CASE NOT FOUND
5X^= #SKI K6SCEX>299-299
5YDW TRACE EOFUNIT(3),ALL-OL
5YYG US1 STOZ CSNTAB(3) [SET MARKER FOR SUBSEQUENT ENTRY
5^D6 LDN 2 BCCB [SET POINTER TO START OF CHAIN
5^XQ BRN US3 [BEGIN SEARCH
62CB #
62X2 #
63BL #
63F9 ...UGOT
63P2 ... GETAREA 7,RPB5 [GET SCRATCH LIST FROM OTHER MACHINE
64*W ACROSS SCEXEND,1 [NEXT UNIT IS NOW ONLINE
64D^ ...# IPB DOWN ON GETAREA
64G2 ...#
64H3 ...RPB5 UNLOCKSU 7 [UNLOCK AREA UNIT
64J4 ... MHUNTW 3,EWDAS,GEXD
64K5 ... LDX 6 HMUNIT(3)
64L6 ... TXU 6 ARUNIT(3) [
64M7 ... BCC RPB [J IF AREA=HOME
64N8 ... RELST 7 [RELST AREA
64P9 ... BZE 6 RPB [J IF SCRATCH
64Q= ... UNLOCKSU 6 [UNLOCK HOME
64R? ... BRN RPB
64TG #
65*6 #
65SQ #
66#B QK3NEXT
66S2 XEND [GENERAL FAILURE ROUTINE
67?L MHUNTW 3,EWDAS,GEXD
67R= MFINDEXOF 1,CEFN(3)
68=W LDCT 0 #40
68QG ANDX 0 EMARK(3)
69=6 BZE 0 XN1 [J UNLESS OPENING SCRATCH FILE
69PQ #SKI K6SCEX>399-399
6=9B (
6=P2 LDX 0 EMARK(3)
6?8L BNG 0 XE1
6?N= XE2 GEOERR 1,SCEX??
6#7W XE1
6#MG )
6#RP ...NXN2 FREECORE 1
6#T6 ... HUNTW 1,EWDAS,ASCOL
6#WH ... BNG 1 XN2
6#XY ... BRN NXN2
6B6B XN1 LDEX 0 FIP+5(1)
6BL2 SBN 0 1
6C5L #SKI K6SCEX>399-399
6CK= BNG 0 XE2
6D4W DEX 0 FIP+5(1) [REMOVE DUMMY FILE AREA FROM EXOF
6DJG LDX 0 EMARK(3)
6F46 BNG 0 XN2 [J IF SCRATCH FILE
6FHQ MFINDSU 1,HMUNIT(3) [ELSE
6G3B LDN 0 1
6GH2 SBS 0 CEXTEND(1) [SUBTRACT 1 FROM COUNT OF EXTENDS
6H2L #SKI K6SCEX>399-399
6HG= (
6H^W LDX 0 CEXTEND(1)
6JFG BNG 0 XE2
6J^6 )
6KDQ RELST HMUNIT(3) [AND RELEASE HOME UNIT
6KYB XN2 EXMESS ALL [OUTPUT MESSAGES
6LD2 MHUNTW 3,EWDAS,GEXD
6LXL LDCT 0 #100
6MC= ANDX 0 EMARK(3)
6MWW BZE 0 XN3 [J IF PERI
6NBG FREECORE 3 [ELSE FREE GEXD
6NW6 COMERR EWSCRX [AND COMMAND ERROR
6P*Q #
6PTB SEVEN #777777
6Q*2 #
6QSL XN3 NGN 4 1 [GET REPLY,FROM REPBITS
6R#= LDX 0 EMARK(3)
6RRW SRC 0 6 [B18-23 OF EMARK
6S?G LDX 7 BAVAIL(3) [REPLY IS LARGEST AVAILABLE AREA
6SR6 SMO FX1
6T=Q ANDX 7 SEVEN
6TQB ORX 7 GSIGN
6W=2 BNG 0 XN4 [IF B18=1 (NO ROOM)
6WPL XN5 SLC 0 1 [ELSE SHIFT TO FIND MOST SIGNIFICANT
6X9= ADN 4 1 [REPLY BIT
6XNW BPZ 0 XN5
6Y8G #SKI K6SCEX>399-399
6YN6 (
6^7Q SBN 4 5
6^MB BPZ 4 XE2
7272 ADN 4 5
72LL )
736= SMO 4 [AND
73KW LDX 7 RTAB(1) [GET CORRESPONDING REPLY IN X7
745G XN4 LDX 4 CNR(3) [CONTROL AREA ADDRESS,
74K6 LDX 5 EXCHNL(3) [CHANNEL,
754Q FREECORE 3 [FREE GEXD
75JB # ENTRY POINT FROM SCEX FOR EARLY FAILURES
7642 QK4NEXT
768N ...XN8 HUNTW 1,EWDAS,ASCOL
76== ... BNG 1 XN8B
76?S ... FREECORE 1
76*B ...XN8B ADN 4 1
773= GETWORD 4,2,WRITE [GET IT
77GW #SKI K6SCEX>399-399
782G (
78G6 TESTREP OK,XN8A
78^Q GEOERR 1,EXFAILRP [IF BAD REPLY FROM GETWORD
79FB XN8A
79^2 )
7=DL STO 7 0(2) [SET REPLY
7=Y= #SKI K6SCEX>299-299
7?CW TRACE 7,SCEXREP
7?XG WORDFIN
7#C6 SLL 7 3
7#WQ BNG 7 XN9 [J IF FAIL ,ELSE
7*BB RUNPROG [RESTART PROGRAM
7*W2 # TABLE OF FAIL REPLIES
7B*L RTAB +0.2 [NO ROOM IN SCA REPBIT=SC
7BT= #440:0 [FAIL,TRANSFER FAIL " =F
7C#W +6.2 [UNIT NOT ONLINE " =N6
7CSG #440:0 [FAIL,UNIT CANTDOED " =NF
7D#6 +1.2 [NO ONLINE UNITS " =NR
7DRQ #
7F?B ...XN9 LDCT 4 6
7FR2 ... ADX 4 5
7G=L ... OUTPACK 4,1,PERINAME,XN9
7N66 ILLEGAL PERFAIL [FAIL PROGRAM
7NKQ #
7P5B #
7PK2 #
7Q4L MENDAREA 50,K99NEXTUNIT
7QJ= #END
^^^^ ...51306576000200000000