{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: FINDPEREC)}}
====== FINDPEREC ======
(GIN Macro)
**Defined in:** [[george:source:MACS_SPC|MACS SPC]]
**Used in:** [[george:source:CDUM866|CDUM866]], [[george:source:CHARGESC867|CHARGESC867]], [[george:source:CLOSEIPB864|CLOSEIPB864]], [[george:source:DEAD867|DEAD867]], [[george:source:DUMMYA867|DUMMYA867]], [[george:source:ENGAGE867|ENGAGE867]], [[george:source:FAILTWIN866|FAILTWIN866]], [[george:source:FINDRUM866|FINDRUM866]], [[george:source:HLSREAD867|HLSREAD867]], [[george:source:IDFASAT867|IDFASAT867]], [[george:source:IDFCANC867|IDFCANC867]], [[george:source:IDFCHK867|IDFCHK867]], [[george:source:IDFONLIN867|IDFONLIN867]], [[george:source:INTWIN866|INTWIN866]], [[george:source:IPCGEO8|IPCGEO8]], [[george:source:LIBLOAD867|LIBLOAD867]], [[george:source:LIBREQ866|LIBREQ866]], [[george:source:LIBREQC867|LIBREQC867]], [[george:source:LISTEXCP865|LISTEXCP865]], [[george:source:LOADERDA867|LOADERDA867]], [[george:source:LOADERDR867|LOADERDR867]], [[george:source:LOADERFS867|LOADERFS867]], [[george:source:LOADERI867|LOADERI867]], [[george:source:LOADERII867|LOADERII867]], [[george:source:LOADERMT867|LOADERMT867]], [[george:source:LOADERPM867|LOADERPM867]], [[george:source:MODEA65|MODEA65]], [[george:source:MOPPM84|MOPPM84]], [[george:source:NEWOWN865|NEWOWN865]], [[george:source:NEWPW867|NEWPW867]], [[george:source:ONLINEA867|ONLINEA867]], [[george:source:ONLINEB867|ONLINEB867]], [[george:source:ONLINEC867|ONLINEC867]], [[george:source:PARSORT867|PARSORT867]], [[george:source:PM|PM]], [[george:source:PMDUMPDA85|PMDUMPDA85]], [[george:source:PMDUMPMT85|PMDUMPMT85]], [[george:source:PMFS85|PMFS85]], [[george:source:PMLP866|PMLP866]], [[george:source:PMWHATA866|PMWHATA866]], [[george:source:PMWINDDN84|PMWINDDN84]], [[george:source:PROPERTY867|PROPERTY867]], [[george:source:RELIEF866|RELIEF866]], [[george:source:RETURNIT867|RETURNIT867]], [[george:source:SETIDF867|SETIDF867]], [[george:source:SETUPB867|SETUPB867]], [[george:source:SWITCH867|SWITCH867]], [[george:source:SYSPROP867|SYSPROP867]], [[george:source:TAPERING867|TAPERING867]], [[george:source:TRANSPOT65|TRANSPOT65]], [[george:source:TWINSET866|TWINSET866]], [[george:source:TWINSETA866|TWINSETA866]], [[george:source:TWINSETB866|TWINSETB866]], [[george:source:TWINSETD866|TWINSETD866]]
7XY6 #MAC FINDPEREC
7YCQ [
7YXB #STR APINT,%B
7^C2 #STR
7^WL (
82B= LDX 0 %C [INTERNAL NO
82TW TXL 0 BDTL [BDT LENGTH
83*G BCS MFPR1 [JIF NOT OUT OF RANGE
83T6 MFPR3
84#Q NGN %A 4095 [SET %A NEGATIVE IF INT NO TOO BIG
84SB BRN MFPR2
85#2 MFPR1 LDX %A BDTP [BASE OF BDT
85RL SMO %C
86?= LDX %A 0(%A) [PTR TO DEVICE LIST
86QW JENVNOT MFPR2,DME
87=G LGEOG %A,0
87Q6 #STR %G
889Q BZE 0 %G [J IF ANONYMOUS
88PB #STR %G
8992 #STR
89NL BZE 0 MFPR3
8=8= LDX 0 JK52B(%A)
8=MW ANDN 0 2
8?7G #STR %F
8?M6 BNZ 0 %F [J IF SWITCHED OUT
8#6Q #STR %F
8#LB #STR
8*62 BNZ 0 MFPR3
8*KL MFPR2
8B5= )
8BJW [
8C4G #STR APGEOG,%B
8CJ6 #STR
8D3Q (
8DHB LDX 0 %C
8F32 BZE 0 MFPR4 [J IF GEOG = ZERO
8FGL LDX 0 BDTP [BASE OF BDT
8G2= ADX 0 BDTL [PLUS LENGTH EQUALS END ADDR
8GFW MFPR3 SBN 0 1 [STEP BACK
8G^G TXL 0 BDTP
8HF6 BCC MFPR1 [JIF NOT BACK TO THE BASE
8HYQ MFPR4
8JDB NGN %A 4095 [SET %A NEGATIVE IF NO SUCH GEOG NO
8JY2 BRN MFPR2
8KCL MFPR1 SMO 0
8KX= LDX %A 0 [PTR TO DEVICE LIST
8LBW LGEOG %A,%A [GEOG NO
8LWG TXU %A %C
8MB6 BCS MFPR3 [JIF NOT REQUIRED GEOG NO
8MTQ SMO 0
8N*B LDX %A 0 [LOAD DEVICE LIST PTR
8NT2 JENVNOT MFPR2,DME
8P#L LDX 0 JK52B(%A)
8PS= ANDN 0 2
8Q?W #STR %F
8QRG BNZ 0 %F [J IF SWITCHED OUT
8R?6 #STR %F
8RQQ #STR
8S=B BNZ 0 MFPR4
8SQ2 MFPR2
8T9L )
8TP= [
8W8W #STR APTSER,%B
8WNG #STR
8X86 (
8XMQ LDX 0 JPTI+5 [START OF MTS
8Y7B MFPR3 LDX %A JPTI+6 [END OF MTS
8YM2 TXU 0 %A
8^6L BCS MFPR1 [J IF NOT END OF MT.S
8^L= NGN %A 4095 [END OF MTS
925W BRN MFPR2
92KG MFPR1 SMO 0
9356 LDX %A 0 [PTR TO DEVICE LIST
93JQ DFLOAD %A,TSN,%A [TSN IN %A
944B ADN 0 1 [STEP ON
94J2 TXU %A %C
953L BCS MFPR3 [NOT THIS ONE
95H= SBN 0 1
962W SMO 0
96GG LDX %A 0 [TSN FOUND-LOAD D L PTR
9726 MFPR2
97FQ )
97^B [
98F2 #STR APJOB,%B
98YL #STR
99D= (
99XW LDX 0 BDTP [BASE OF BDT
9=CG BRN MFPR1
9=X6 %D
9?BQ MFPR5 LINT %A,%A [REENTRY AND TURN DL PTRBACKTOINT NO
9?WB SMO BDTP
9#B2 LDN 0 0(%A) [PTR TO BDT
9#TL ADN 0 1 [STEP ON
9**= MFPR1 LDX %A BDTP [BASE OF BDT
9*SW ADX %A BDTL [PLUS LENGTH EQUALS END ADDR OF BDT
9B#G TXL 0 %A
9BS6 BCS MFPR2 [JIF NOT AT END
9C?Q NGN %A 4095 [SET %A NEGATIVE IF NO MORE OF JOBNO
9CRB BRN MFPR3
9D?2 MFPR2 SMO 0
9DQL LDX %A 0 [PTR TO DEVICE LIST
9F== JONL %A,MFPR4 [JIF DEVICE ONLINE
9FPW BRN MFPR5 [IF NOT CONTINUE
9G9G MFPR4 LJOBNO %A,0 [JOBNO TO X0
9GP6 TXU 0 %C
9H8Q BCS MFPR5 [J. IF NOT REQUIRED JOBNO
9HNB MFPR3
9J82 )
9JML [
9K7= #STR APFOTY,%B
9KLW #STR
9L6G (
9LL6 SMO %C
9M5Q LDX 0 JPTI [PTR TO BDT FOR FIRST OF TYPE
9MKB BRN MFPR1
9N52 #STR %D
9NJL %D
9P4= #UNS AV7900S
9PHW (
9Q3G #STR AV7900,%E
9QH6 #STR
9R2Q (
9RGB [%E = AV7900 (AND %D IS PRESENT)
9S22 [TEST IF THIS IS A RE-ENTRY TO
9SFL [CONTINUE SEARCH OF VIRTUAL 7900
9S^= [DEVICE LISTS, IE %C.B0=1
9TDW LDXC 0 %C
9TYG BCS MFVPR1 [CONTINUE SEARCH OF V7900 DLS
9WD6 )
9WXQ )
9XCB MFPR4
9XX2 LINT %A,%A [REENTRY & TURN DL PTR BACK TO INT NO
9YBL SMO BDTP
9YW= LDN 0 0(%A) [PTR TO BDT
9^*W ADN 0 1 [STEP ON
9^TG MFPR1 SMO %C
=2*6 LDX %A JPTI+1 [END ADDR OF TYPE
=2SQ TXU 0 %A
=3#B BCS MFPR2 [JIF NOT END OF TYPE
=3S2 NGN %A 4095 [SET %A NEGATIVE IF NO MORE OF TYPE
=4?L BRN MFPR3
=4R= MFPR2 SMO 0
=5=W LDX %A 0 [PTR TO DEVICE LIST FOR NEXT OF TYPE
=5QG JENVNOT MFPR3,DME
=6=6 LGEOG %A,0
=6PQ BZE 0 MFPR5
=79B LDX 0 JK52B(%A)
=7P2 ANDN 0 2
=88L #STR %F
=8N= BNZ 0 %F
=97W #STR %F
=9MG #STR
==76 BNZ 0 MFPR4
==LQ BRN MFPR3
=?6B MFPR5
=?L2 LDN 0 63
=#5L TXU 0 %C
=#K= BCC MFPR3 [J IF CONSOLE TYPE
=*4W #STR %G
=*JG BRN %G
=B46 #STR %G
=BHQ #STR
=C3B BRN MFPR4
=CH2 MFPR3
=D2L )
=DG= [
=D^W #UNS AV7900S
=FFG (
=F^6 #STR AV7900,%E
=GDQ #STR
=GYB (
=HD2 [%E = AV7900
=HXL BPZ %A MFVPR3 [PERIPHERAL FOUND : SKIP V7900 DLS
=JC= [SEARCH THE VIRTUAL 7900 DEVICE LISTS
=JWW [MOVING BACKWARDS AROUND THE
=KBG [MISCELLANEOUS CHAIN
=KW6 #STR %D
=L*Q (
=LTB [%D IS ALSO PRESENT THEREFORE
=M*2 LDCT 0 #400 [SET %C.B0 TO INDICATE FOR RE-ENTRY
=MSL ORS 0 %C [THAT V7900 DLS ARE BEING SEARCHED
=N#= )
=NRW LDN %A 0
=P?G SMO BMISC
=PR6 MFVPR1 [SEARCH FOR NEXT VIRTUAL 7900 DL
=Q=Q LDX %A BPTR(%A)
=QQB BXE %A BMISC,MFVPR2 [END OF MISCELLANEOUS CHAIN SEARCH
=R=2 LDX 0 ATYPE(%A)
=RPL SRC 0 12 [IGNORE V7900'S WHICH ARE BEING
=S9= [CREATED,IE ATYPE.B12-23 SET NON-ZERO
=SNW SBN 0 APERI+AV7900
=T8G BNZ 0 MFVPR1 [NOT A V7900 DL : TRY NEXT BLOCK
=TN6 #STR APGEOG,%B
=W7Q #STR
=WMB LGEOG %A,0 [%B = APGEOG
=X72 #STR APFOTY,%B
=XLL #STR
=Y6= LTYPE %A,0 [%B = APFOTY
=YKW #STR %D
=^5G (
=^K6 [%D IS PRESENT THEREFORE
?24Q ORX 0 GSIGN [%C.B0 IS SET SO SET X0.B0 FOR TEST
?2JB )
?342 BXU 0 %C,MFVPR1 [NOT RELEVANT DL : TRY NEXT BLOCK
?3HL BRN MFVPR3 [RELEVANT DEVICE LIST FOUND : EXIT
?43= MFVPR2 [END OF VIRTUAL 7900 DEVICE LISTS
?4GW #STR %D
?52G (
?5G6 LDCT 0 #400 [%D IS PRESENT : LEAVE %C.B0 CLEAR
?5^Q ERS 0 %C
?6FB )
?6^2 NGN %A 4095 [SET %A NEGATIVE TO INDICATE NO SUCH
?7DL [PERIPHERAL WAS FOUND
?7Y= MFVPR3 [EXIT
?8CW [
?8XG )
?9C6 )
?9WQ #NOR