=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