{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: GDRPTRS)}}
====== GDRPTRS ======
(GIN Macro)
**Defined in:** [[george:source:OPEN-MACROS|OPEN-MACROS]]
**Used in:** [[george:source:ORELEND860|ORELEND860]]
=BRJ ...[??? GDRPTRS SECT FILE FGN 20 DOC
=C3B #MAC GDRPTRS
=CH2 [
=D2L [ THIS MACRO CALCULATES THE READ POINTERS OF A NEWLY OPENED GENERAL
=DG= [ DESTRUCTIVE READ FILE,AND SETS THEM EQUAL TO THE READ PTRS OF THE
=D^W [ MOST ADVANCED READER.
=FFG [
=F^6 LDX %B %A
=GDQ ADX %B FBACKPOINT(%A) [%B -> FSTACK
=GYB MOD LDEX 0 ARINGNO,%B
=HD2 #SKI K6OPEN>100$100
=HXL TRACE 0,NO.ELTDR
=JC= BCT 0 M1GDRPTRS [J IF >1 ELEMENTS
=JWW M8GDRPTRS
=KBG NGS %B FREADBLOCK(%A) [O/W SET 'REWOUND' POINTERS
=KW6 NGS %B FREADWORD(%A)
=L*Q BRN M2GDRPTRS
=LTB M1GDRPTRS
=M*2 NGX 0 0 [REVERSE COUNT
=MSL ANDX 0 BITS22LS
=N#= STOZ FREADBLOCK(%A)
=NRW M3GDRPTRS
=P?G MOD LDXC %C A1+FGENERAL1,%B
=PR6 BCC M4GDRPTRS [J IF NOT OPEN IN READ MODE
=Q=Q MOD LDN %C A1+FREADBLOCK,%B
=QQB SBN %C FREADBLOCK(%A) [IS THIS'OUR' ELEMENT ?
=R=2 BZE %C M4GDRPTRS [J IF SO
=RPL MOD LDXC %C FREADBLOCK+A1,%B
=S9= BCS M4GDRPTRS [J IF NEGATIVE POINTERS.
=SNW SBX %C FREADBLOCK(%A)
=T8G BNG %C M4GDRPTRS [J IF READER BEHIND LATEST FOUND BEFO
=TN6 BZE %C M5GDRPTRS [J IF EQUAL TO CF. RECORD PTRS.
=W7Q ADS %C FREADBLOCK(%A) [UPDATE READ PTRS
=WMB #SKI K6OPEN>99$99
=X72 TRACE FREADBLOCK(%A),NEW BLDR
=XLL MOD LDX %C FREADWORD+A1,%B
=Y6= M6GDRPTRS
=YKW STO %C FREADWORD(%A) [
=^5G #SKI K6OPEN>99$99
=^K6 TRACE FREADWORD(%A),NEWRECDR
?24Q M4GDRPTRS
?2JB BZE 0 M7GDRPTRS [EXIT IF END
?342 ADN %B FELLEN [STEP ON FSTACK PTR
?3HL #SKI K6OPEN>100$100
?43= TRACE FREADBLOCK+A1(%B),LOOP GDR
?4GW BUX 0 M3GDRPTRS [CT = NEG.OF TOTAL ELTS.MINUS ONE
?52G M5GDRPTRS
?5G6 MOD LDXC %C FREADWORD+A1,%B
?5^Q BCS M4GDRPTRS [J IF RECORD PTR <0
?6FB BXL %C FREADWORD(%A),M4GDRPTRS[J IF LESS THAN
?6^2 BRN M6GDRPTRS [O/W UPDATE
?7DL M7GDRPTRS
?7Y= LDX 0 FREADBLOCK(%A) [IF NO POINTER CALCULATED,SET <0.
?8CW BZE 0 M8GDRPTRS
?8XG M2GDRPTRS
?9C6 #NOR