GDRPTRS

(GIN Macro)

Defined in: OPEN-MACROS

Used in: ORELEND860

GDRPTRS.mac.txt
 =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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1