*TITLESASIS -- NORMAL MOVEOUT APPLICATION FOR VELOCITY ANALYSIS 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** *A AUTHOR J. MENDEKE 00000020 *A DESIGNER HOOGSTRAAT, MCMILLAN, MENDEKE 00000030 *A LANGUAGE S/370 ASSEMBLER F 00000040 *A WRITTEN 06-22-76 00000050 * REVISED MO-DA-YR BY 00000060 * 00000070 * 00000080 * 00000090 * 00000100 SASIS CSECT 00000110 *A 00000120 *A 00000130 *A CALL SASIS 00000140 *A (XTEM,IVEL,XTEMI,IX,IRLENG,SAMPR ,VAWINC,VASMA,NSNMO,VASMA2) 00000150 *A 00000160 *A INPUT XTEM = FLOATING POINT TRACE ADDRESS R4 00000170 *A INPUT IVEL = CONSTANT VELOCITY FOR NMO I4 00000180 *A INPUT XTEMI = INDEX IN XTEM TO START NMO I4 00000190 *A INPUT IX = TRACE X DISTANCE FROM SHOT POINT I4 00000200 *A INPUT IRLENG = RECORD LENGTH IN MS I4 00000210 *A INPUT SAMPR = SAMPLE RATE IN MS I4 00000220 *A INPUT VAWINC = WINDOW INCREMENT I4 00000230 *A I / O VASMA = VEL. ANALYSIS SUM AREA R4 00000240 *A INPUT NSNMO = NO. OF SAMPLES TO MOVE OUT I4 00000250 *A I / O VASMA2 = VEL. ANALYSIS SUM SQ. AREA R4 00000260 *A 00000270 *A SASIS APPLYS NORMAL MOVE-OUT REMOVAL USING A CONSTANT 00000280 *A VELOCITY, OVER A SECTION OF THE INPUT TRACE AND SUMS 00000290 *A THE RESULT INTO THE SUM AREA 'VASMA' AND 'VASMA2'. 00000300 *A SAMPLE INTERVAL TECHNIQUE USED. 00000310 * 00000320 COPY S1REG 00000330 * 00000340 BASER EQU R12 00000350 XTEM EQU R2 00000360 IVEL EQU R5 00000370 T0 EQU R11 00000380 VASMA EQU R4 00000390 VASMA2 EQU R14 00000400 * 00000410 B 12(0,R15) 00000420 DC X'06' 00000430 DC CL7'SASIS ' 00000440 * 00000450 STM R14,R12,12(R13) 00000460 BALR BASER,0 00000470 USING *,BASER 00000480 * 00000490 ST R13,SAVE13 00000500 LA R2,SEXIT 00000510 ST R2,8(,R13) 00000520 ST R13,SEXIT+4 00000530 LM R2,R11,0(R1) LOAD CALLING SEQUENCE 00000540 * 00000550 LR VASMA2,R11 SAVE THE ADDRESS OF THE SQ. AREA 00000560 L T0,0(,R4) SAVE THE START ADDRESS OF XTEM 00000570 BCTR T0,0 AND CONVERT TO BYTES 00000580 SLL T0,2 00000590 * 00000600 * 00000610 LR VASMA,R9 SAVE THE ADDRESS OF THE SUM AREA 00000620 L R9,0(,R6) LOAD VALUE OF IRLENG 00000630 L R0,0(,R7) LOAD VALUE OF SAMPR 00000640 SR R8,R8 00000650 DR R8,R0 CONVERT TO SAMPLES 00000660 SLA R9,2 AND BYTES 00000670 * 00000680 S R9,=F'4' 00000690 ST R9,NOSAMP 00000700 * 00000710 L R10,0(,R10) 00000720 BCTR R10,0 00000730 SLA R10,2 CONVERT NO. OF SAMPLES TO NMO 00000740 AR R10,T0 TO BYTES AND STORE IN NSNMO 00000750 ST R10,NSNMO 00000760 * 00000770 L R9,0(,R5) LOAD VALUE OF IX 00000780 M R8,=F'8000' 00000790 BZ ANMO40 EXIT IF X = 0 00000800 DR R8,R0 DIVIDE DISTANCE BY SAMPLE RATE 00000810 ST R9,IX8000 00000820 * 00000830 L IVEL,0(,R3) SET INITIAL VELOCITY 00000840 * 00000850 * 00000860 SR R8,R8 INITIALIZE FIRST ROOT 00000870 DR R8,IVEL 00000880 ST R9,ROOT2 00000890 ST R9,TXL 00000900 * 00000910 * 00000920 * 00000930 ********************************************************************* 00000940 * LOOP TO COMPUTE THE NMO SAMPLE AND SUM INTO VASMA AND VASMA2 00000950 ********************************************************************* 00000960 L R7,IX8000 COMPUTE (X*8000/V)**2 00000970 SR R6,R6 00000980 DR R6,IVEL DIVIDE BY THE VELOCITY 00000990 MR R6,R7 00001000 LR IVEL,R7 00001010 * 00001020 ANMO10 LR R7,IVEL 00001030 LR R9,T0 COMPUTE (T0*8)**2 00001040 SLA R9,1 00001050 LR R10,R9 00001060 MR R8,R9 00001070 AR R7,R9 NOW HAVE (T0*8)**2+(X*8000/V)**2 00001080 BO BOMB KICK OFF IF OVERFLOW 00001090 * 00001100 LA R1,1 SET UP TO TAKE SQUARE ROOT 00001110 L R3,ROOT2 LOAD LAST ROOT 00001120 LTR R3,R3 00001130 BP ROOT10 00001140 LA R3,1 00001150 * 00001160 ROOT10 LR R9,R7 USE NEWTON ITERATION METHOD TO 00001170 LA R8,0 COMPUTE THE INTEGER SQUARE ROOT 00001180 DR R8,R3 00001190 AR R9,R3 00001200 SRA R9,1 00001210 LR R8,R9 00001220 SR R8,R3 00001230 LPR R8,R8 00001240 SR R8,R1 00001250 BNP ROOT20 CHECK IF ITERATIONS DONE 00001260 * 00001270 LPR R3,R9 00001280 B ROOT10 00001290 * 00001300 ROOT20 LR R8,R9 00001310 LA R9,8(R9) 00001320 ST R9,ROOT2 00001330 * 00001340 * 00001350 * 00001360 LA R9,0 00001370 SRDL R8,3 EXTRACT HI-FI INTERPOLATION 00001380 SLL R8,2 INDEX AND CONVERT TO BYTE INDEX 00001390 * 00001400 C R8,NOSAMP 00001410 BNL ANMO40 QUIT IF TX >= NOSAMP 00001420 * 00001430 SRL R9,27 COMPUTE HI-FI TABLE INDEX 00001440 * 00001450 LE FR0,0(XTEM,R8) LOAD XTEM(TX) 00001460 LE FR2,4(XTEM,R8) LOAD XTEM(TX+1) 00001470 ME FR0,TAB1(R9) PERFORM INTERPLOATION 00001480 ME FR2,TAB2(R9) 00001490 AER FR0,FR2 00001500 LER FR2,FR0 00001510 AE FR0,0(VASMA) SUM TO VASMA ARRAY 00001520 STE FR0,0(VASMA) AND REPLACE. 00001530 MER FR2,FR2 SQUARE AND STORE 00001540 STE FR2,0(VASMA2) 00001550 * 00001560 GO C T0,NSNMO 00001570 BE ANMO40 QUIT IF VASMA = NSNMO 00001580 C T0,NOSAMP 00001590 BE ANMO40 QUIT IF T0 = NOSAMP 00001600 LA T0,4(,T0) BUMP TO NEXT INDEX IN XTEM 00001610 LA VASMA,4(,VASMA) BUMP TO NEXT INDEX IN VASMA 00001620 LA VASMA2,4(,VASMA2) BUMP TO NEXT INDEX IN VASMA2 00001630 * 00001640 B ANMO10 LOOP BACK FOR NEXT SAMPLE. 00001650 * 00001660 * 00001670 ANMO40 L R13,SAVE13 00001680 LM R14,R12,12(R13) 00001690 BR R14 RETURN TO CALLER 00001700 * 00001710 BOMB L R15,=V(S2ANMB) 00001720 LA R1,IPRADR 00001730 LA R13,SEXIT 00001740 BR R15 00001750 * 00001760 DS 0F 00001770 IPRADR DC A(IPR) 00001780 SAVE13 DS F 00001790 ROOT2 DS F 00001800 NOSAMP DS F 00001810 NSNMO DS F 00001820 IX8000 DS F 00001830 TXL DS F 00001840 IPR DC F'6' 00001850 TAB1 DC E'1.0,0.875,0.750,0.625,0.500,0.375,0.250,0.125,0.0' 00001860 TAB2 DC E'0.0,0.125,0.250,0.375,0.500,0.625,0.750,0.875,1.0' 00001870 SEXIT DS 9D 00001880 * 00001890 LTORG 00001900 * 00001910 END 00001920