{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: FINDFCB)}}
====== FINDFCB ======
(GIN Macro)
**Defined in:** [[george:source:MACROS_RM59B|MACROS RM59B]]
**Used in:** [[george:source:FREEZE864|FREEZE864]], [[george:source:INCVFCHK850|INCVFCHK850]], [[george:source:LOGCOM864|LOGCOM864]], [[george:source:OPENFILE867|OPENFILE867]], [[george:source:ORELHALF82|ORELHALF82]]
5L8Q ...[??? FINDFCB SECT FILE FGN 6 DOC
5MML #MAC FINDFCB
5MMY ...[
5MN= ...[ ACCS USED AS FOLLOWS
5MNJ ...[ X0 TESTNAMX
5MNW ...[ X1 FCBRING POINTER
5MP8 ...[ X2 POINTER TO THE REQUIRED NAME IN FABS
5MPG ...[ X3 =0 IF USER NAME OR ELSE POINTER TO SUPUSER NAME
5MPS ...[ X4 LOCAL NAME USER NAME IDICATOR . 0=FLOC1,3= FME1
5MQ6 ...[ X5 FIRST WORD OF REQ NAME OR GENERAL WORK WORD
5MQD ...[ X6 =0 IF ON DIR RING OR =1 IF ON HALF RING
5MQQ ...[ X7 FCB COUNT
5MR4 ...[
5MRH ...[ THIS MACRO SEARCHES THROUGH BOTH THE OPEN AND HALF-OPEN FILE CHAINS
5MXD ...[ FOR AN FCB WHOSE NAME IS GIVEN IN A FILE/FABSNB POINTED TO BY %A.
5N3* ...[ THE POINTER TO THE FCB IF FOUND IS GIVEN IN %B.
5N7= LDX 1 %A
5NLW LDN 2 %B
5P6G CALL 0 M1FINDFCB
5PL6 #OPT M2FINDFCB=1
5Q5Q #SKI M2FINDFCB
5QKB (
5R52 BRN M3FINDFCB
5RJL #DEF M1FINDFCB=0?
5S4= STO 0 GEN0 [STORE LINK IN GEN0
5SHW STO 1 GEN1 [KEEP %A IN GEN1
5T3G LDN 0 3
5TH6 LDN 1 GEN2 [ACCUMULATORS 3 TO 7 DUMPED
5W2Q MOVE 0 5 [ IN GEN2 TO GEN6
5WSY ... NGX 5 GEN1
5X=3 ... STO 2 GEN1
5XM6 ... HUNT 2,FILE,FABSNB
5Y49 ... ADX 5 A1(2)
5YF# ... ADX 2 5 [POINTER DOWN FABS
5YWC ... ADN 2 A1 [POINTS TO REQ NAME
5^?G ... SBN 5 1 [ARE WE AT THE TOP OF THE FABS
625N ... LDN 3 0 [SET X34 TO INDICATE USERNAME
62GR ... LDN 4 FME1-FLOC1
62XW ... BZE 5 M4FINDFCB [X2 POINTS TO TOP NAME MUST BE USER
63Q4 ... LDX 0 0(2)
6477 ... ADN 2 1
64J= ... SBX 0 HCOLUSER [SEE IF USER COLON
64^* ... BZE 0 M4FINDFCB [YES IT IS
65RH ... SBN 2 1 [LOOKING FOR LOCAL NAME
668L ... SBN 5 3
66KP ... LDX 3 2 [SO SET X3 TO SUPUSER
672S ... LDN 4 0
67CX ... SBN 3 3
67T2 ... BZE 5 M4FINDFCB [SUPUSER IS TOP OF FABS
68M8 ... SBN 3 2 [SUPUSER IS NOT TOP SO ADJUST X3
69FB ...M4FINDFCB
6=?J ... LDX 5 0(2) [LOAD COMPARISON WORD
6=NM ... LDN 6 1 [INDICATE HALF OPEN CHAIN
6?5Q ... BASEFCB 1,HALF,M10FINDFCB,7
6?GT ...[
6?XY ...M5FINDFCB
6#*3 ... BZE 4 M8FINDFCB [DO LOCAL TEST
6#Q6 ...M6FINDFCB [USERNAME TEST
6*79 ... BXE 5 FME1-FCBRING(1),M11FINDFCB
6*J# ...M7FINDFCB
6*^C ... NEXTFCB 1,DIR,M6FINDFCB,7
6BBG ... BRN M10FINDFCB
6C8N ...M8FINDFCB [LOCAL NAME TEST
6CKR ... BXE 5 FLOC1-FCBRING(1),M11FINDFCB
6D2W ...M9FINDFCB
6DC^ ... NEXTFCB 1,DIR,M8FINDFCB,7
6F=7 ...M10FINDFCB [FCB NOT FOUND ON THIS SEARCH
6FM= ... BZE 6 M10AFINDFCB [FINISHED BOTH HALF AND DIR
6G4* ... LDN 6 0 [INDICATE DIR CHAIN
6GFD ... BASEFCB 1,DIR,M10AFINDFCB,7
6GWH ... BRN M5FINDFCB [RETURN TO SEARCH DIR RING
6HNP ...M10AFINDFCB [GIVE REPLY NOTFOUND
6J5S ... KEEPREP 7,NOTFOUND
6JGX ... BRN M16FINDFCB
6K*5 ...M11FINDFCB [THIS ROUTINE CHECKS FURTHER DETAILS OF FCB
6KQ8 ... LDX 5 1(2)
6L7? ... SMO 4
6LJB ... BXU 5 FLOC2-FCBRING(1),M12FINDFCB [COMPARE REST OF NAME
6MBJ ... LDX 5 2(2)
6MRM ... SMO 4
6N8Q ... BXE 5 FLOC3-FCBRING(1),M13FINDFCB
6P2Y ...M12FINDFCB [RETURN TO SEARCH
6PD3 ... LDX 5 0(2)
6PT6 ... BZE 4 M9FINDFCB [LOCAL NAME EXIT
6Q=9 ... BRN M7FINDFCB [USER NAME EXIT
6R4C ...M13FINDFCB [FIRST NAME OK
6RFG ... BZE 3 M14FINDFCB [USER SO NO FURTHER NAME CHECK NECC
6RWK ... TESTNAMX 3,0(3),FUSER1-FCBRING(1),M12FINDFCB,5 [LOCAL NAME CHEC
6SNR ...M14FINDFCB [FINAL CHECK FOR TO BE ERASED DIRS
6T5W ... LDX 5 FCOMM-FCBRING(1)
6TG^ ... ANDN 5 1
6TY4 ... BNZ 5 M12FINDFCB
6W*7 ... SBN 1 FCBRING [EVERYTHING OK
6WQ= ... LDX 5 1
6WTG ...#STR %C
6WYQ ...#SKI
6X42 ...(
6X7* ... BZE 6 M15FINDFCB [FILE ALREADY OPEN
6XJD ... LDX 4 FPTR(1) [CHAIN BLOCKS ON FILE CHAIN
6X^H ... TRANSFCB 5,HALF,FILE
6YBL ... LDX 1 4
6YRP ... CHAIN 1,BFILE+1 [CHAIN FINDEXF BLOCK
6^KX ...M15FINDFCB
6^SD ...)
7232 ... LDX 2 5
72D5 ... KEEPREP 7,OK
73=? ...M16FINDFCB
73MB ... PUTREP 7
745G TRACEIF K6OPEN,99,299,7,HALFREP
74K6 LDN 0 GEN2 [RESTORE X3 TO X7
754Q LDN 1 3
75JB MOVE 0 5
7642 LDX 1 GEN1
76HL STO 2 0(1) [PUT -> IN %B
773= LDX 1 FX1
77GW LDX 2 FX2
782G BRN (GEN0)
78G6 #FREE M2FINDFCB
78^Q #DEF M2FINDFCB=0
79FB M3FINDFCB
79^2 )
7=DL #NOR