{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: UPDOLC)}}
====== UPDOLC ======
(GIN Macro)
**Defined in:** [[george:source:DUMP-MACROS|DUMP-MACROS]]
**Used in:** [[george:source:DTSTART867|DTSTART867]], [[george:source:DTSUBSA867|DTSUBSA867]], [[george:source:SCHEDMTX867|SCHEDMTX867]]
9FG4 ...[??? UPDOLC SECT FILE FGN 65 DOC
9G9G [
9GP6 [
9H8Q ...[ THIS MACRO IS DESIGNED TO DO A NON-CORDINATING SEARCH OF THE
9HNB [ OLC, UPDATING ALL THE RELEVANT REQUEST BLOCKS. THERE ARE FOUR
9J82 [ ENTRY POINTS CORRESPONDING TO FOUR SEPERATE ACTIONS TO BE TAKEN
9JML [
9K7= [ 1 XTAPEM/XTAPEP : SEARCH DOWN THE OFF LINE CHAIN
9KLW [ INCREMENTING/DECREMENTING ADTCOUNT IN
9L6G [ ALL REQUEST BLOCKS WHOSE INC. NO. IS IN
9LL6 [ THE RANGE GIVEN BY FILE FDINCS BLOCK
9M5Q [
9MKB ...[ ENTRY : X2 = FX2
9N52 ...[ FILE FDINCS BLOCK PRESENT
9NJL [
9P4= [ 2 XCOUNT : SEARCH DOWN OLC UPDATING ADTCOUNT WITH A
9PHW ...[ VALUE SPECIFIED IN X0, IN ALL REQUEST
9Q3G [ BLOCKS WHOSE INC. NO. IS SAME AS IN X4
9Q?# ...[ AND WHOSE FILESTORE NUMBER IS IN X6.
9QH6 [
9R2Q [ ENTRY : X2 = FX2
9RGB [ X0 = COUNT OF DTAS AVAILABLE
9S22 [ X4 = INC. NO.
9S9S ...[ X6 = FILESTORE NUMBER
9SFL [
9S^= [ 3 XSTATE : SEARCH DOWN OLC SETTING APPROPRIATE BIT IN
9TDW [ FDTSTATE WORD IN ALL REQUEST BLOCKS WHOSE
9TR? ...[ INC.NO. IS GIVEN IN X4 AND WHOSE FILESTORE
9W5N ...[ NUMBER IS IN X6
9WD6 [
9WXQ [ ENTRY : X2 = FX2
9XCB [ X0 = STATE WORD
9XX2 [ X4 = INC. NO.
9Y6S ...[ X6 = FILESTORE NUMBER
9YBL [
9YW= [ EXIT IN ALL THESE CASES ALL THE ACCUMULATORS ARE CORRUPTED
9^TG [
=2*6 [ NOTE THE LINK ACCUMULATOR IS X7
=3#B #MAC UPDOLC
=3FJ ...#UNS FTS2
=3LQ ...(
=3S2 #DEF XTAPEM=0?
=4?L NGN 5 1
=4R= BRN M1UPDOLC
=5=W #DEF XTAPEP=0?
=5QG LDN 5 1
=6=6 M1UPDOLC
=6PQ ... STO 7 ACOMMUNE1(2) [STORE LINK
=79B LDX 7 GSIGN [SET FLAG NEGATIVE TO INDICATE TO
=7P2 [ INCREMENT/DECREMENT ADTCOUNT
=88L MHUNTW 1,FILE,FDINCS
=8DD ... LF 1,FDINCFSNO,6 [X6 => FILESTORE NUMBER
=8N= LDX 0 5
=97W LDN 5 0 [X5 USED TO ACCUMULATE COUNT
=9MG M2UPDOLC
==76 ... BXL 5 FDINCNO(1),M4UPDOLC [J IF MORE INCS IN FDINCS
==LQ M3UPDOLC
=?6B ... LDX 2 FX2 [RESET X2
=?L2 ... LDX 7 ACOMMUNE1(2)
=#5L EXIT 7 0
=#K= #DEF XCOUNT=0?
=*4W ... STO 7 ACOMMUNE1(2) [PRESERVE LINK ADDRESS
=*JG STOZ 7 [ SET FLAG ZERO
=B46 BRN M5UPDOLC
=BHQ #DEF XSTATE=0?
=C3B ... STO 7 ACOMMUNE1(2) [ PRESERVE LINK ADDRESS
=CH2 [ X7 = +VE VALUE
=D2L BRN M5UPDOLC
=DG= M4UPDOLC
=D^W ... LDN 2 FDINCLEN
=FFG MPY 2 5 [X3 -> POSITION IN FDINCS
=F^6 SMO 3
=GDQ ... LDX 4 FDINCINC(1) [X4 = INC. NO. IN FDINCS BLOCK
=GYB M5UPDOLC
=HD2 [
=HXL [ SEARCHS OLC UPDATING COUNT OR STATE WORD FOR ALL FREQS
=JC= [ HAVING INC NOS IN FDINCS BLOCK
=JWW [
=KBG LDX 2 BOLC
=KW6 M6UPDOLC
=L*Q LDX 2 FPTR(2)
=LTB BXE 2 CXOL,M3UPDOLC [J IF END OF CHAIN
=M*2 BXE 4 FDTINCNUM(2),M7UPDOLC [J IF INC NO IN FDINCS = INC OF
=MSL [FREQ CURRENTLY POINTED AT
=N#= BXGE 4 FDTINCNUM(2),M6UPDOLC [J IF NOT YET REACHED INC IN OLC
=NJ4 ...M10UPDOLC
=NRW BPZ 7 M3UPDOLC [J IF NOT XTAPEM/XTAPEP S/R
=P?G ADN 5 1 [LOOK AT NEXT FDINCS ENTRY
=PR6 BRN M2UPDOLC
=Q=Q M7UPDOLC
=QCY ... BXL 6 FDTFILSTR(2),M10UPDOLC [J IF FILESTORE NOT THERE
=QK6 ... BXU 6 FDTFILSTR(2),M6UPDOLC [J IF FILESTORE NOT YET REACHED
=QQB BPZ 7 M8UPDOLC
=R=2 ADS 0 ADTCOUNT(2) [DECREASE OR INCREASE ADTCOUNT
=RPL BRN M6UPDOLC
=S9= M8UPDOLC
=SNW BZE 7 M9UPDOLC
=T8G ... ORS 0 FDTSTATE(2) [ UPDATE STATE WORD
=TN6 BRN M6UPDOLC
=W7Q M9UPDOLC
=WMB STO 0 ADTCOUNT(2) [UPDATE COUNT WORD
=X72 BRN M6UPDOLC
=XLT ...)
=XM4 ...#UNS FTS2
=XM? ...#STR
=XMG ...(
=XMP ...#DEF XTAPEM=0?
=XMY ... NGN 5 1
=XN7 ... BRN M1UPDOLC
=XNB ...#DEF XTAPEP=0?
=XNK ... LDN 5 1
=XNS ...M1UPDOLC
=XP3 ... STO 7 AWORK1(2) [STORE LINK
=XP= ... LDX 7 GSIGN [SET FLAG NEGATIVE TO INDICATE TO
=XPF ... [ INCREMENT/DECREMENT ADTCOUNT
=XPN ... MHUNTW 1,FILE,FDINCS
=XPX ... LDX 0 5
=XQ6 ... LDN 5 0 [X5 USED TO ACCUMULATE COUNT
=XQ* ...M2UPDOLC
=XQJ ... BXL 5 A1(1),M4UPDOLC [J IF MORE INCS IN FDINCS
=XQR ...M3UPDOLC
=XR2 ... SMO FX2
=XR9 ... LDX 7 AWORK1
=XRD ... EXIT 7 0
=XRM ...#DEF XCOUNT=0?
=XRW ... STO 7 AWORK1(2) [PRESERVE LINK ADDRESS
=XS5 ... STOZ 7 [ SET FLAG ZERO
=XS# ... BRN M5UPDOLC
=XSH ...#DEF XSTATE=0?
=XSQ ... STO 7 AWORK1(2) [ PRESERVE LINK ADDRESS
=XS^ ... [ X7 = +VE VALUE
=XT8 ... BRN M5UPDOLC
=XTC ...M4UPDOLC
=XTL ... LDN 2 INCMAGLEN
=XTT ... MPY 2 5 [X3 -> POSITION IN FDINCS
=XW4 ... SMO 3
=XW? ... LDX 4 A1+1(1) [X4 = INC. NO. IN FDINCS BLOCK
=XWG ...M5UPDOLC
=XWP ...[
=XWY ...[ SEARCHS OLC UPDATING COUNT OR STATE WORD FOR ALL FREQS
=XX7 ...[ HAVING INC NOS IN FDINCS BLOCK
=XXB ...[
=XXK ... LDX 2 BOLC
=XXS ...M6UPDOLC
=XY3 ... LDX 2 FPTR(2)
=XY= ... BXE 2 CXOL,M3UPDOLC [J IF END OF CHAIN
=XYF ... BXE 4 FDTINCNUM(2),M7UPDOLC [J IF INC NO IN FDINCS = INC OF
=XYN ... [FREQ CURRENTLY POINTED AT
=XYX ... BXGE 4 FDTINCNUM(2),M6UPDOLC [J IF NOT YET REACHED INC IN OLC
=X^6 ... BPZ 7 M3UPDOLC [J IF NOT XTAPEM/XTAPEP S/R
=X^* ... ADN 5 1 [LOOK AT NEXT FDINCS ENTRY
=X^J ... BRN M2UPDOLC
=X^R ...M7UPDOLC
=Y22 ... BPZ 7 M8UPDOLC
=Y29 ... ADS 0 ADTCOUNT(2) [DECREASE OR INCREASE ADTCOUNT
=Y2D ... BRN M6UPDOLC
=Y2M ...M8UPDOLC
=Y2W ... BZE 7 M9UPDOLC
=Y35 ... STO 0 FDTSTATE(2) [ UPDATE STATE WORD
=Y3# ... BRN M6UPDOLC
=Y3H ...M9UPDOLC
=Y3Q ... STO 0 ADTCOUNT(2) [UPDATE COUNT WORD
=Y3^ ... BRN M6UPDOLC
=Y4C ...)
=Y6= #NOR