1 /GENERALIZED ABODIZATION FUNCTION 2 /E.A. BARNHARDT, 30 SEPTEMBER 1971 3 /FOR DATA OF LENGHT 2^N, THAT IS 1024, 512, 256, ETC 4 /RUNNING TIME , 100 MICROSEC TIMES DATA LENGTH 5 /DATA RESTORED TO ORIGINAL LOCATION. 6 /CALL WITH NUMBER OF DATA POINTS IN AC AND ADDRESS 7 /OF FIRST POINT IN CALL+1, RETURN IS TO CALL+2 8 /PROGRAM OCCUPIES 115(8) LOCATIONS 9 *4600 10 04600 0000 ABOD, 0 11 04601 3313 DCA PTS /NUMBER OF DATA POINTS (8) 12 04602 1600 TAD I ABOD 13 04603 3311 DCA ADD1 /ADDRESS OF FIRST DATUM 14 04604 2200 ISZ ABOD /SET RETURN TO CALL +2 15 04605 1313 TAD PTS 16 04606 7012 RTR 17 04607 7012 RTR 18 04610 3302 DCA TEMP2 /LENGTH OF ONE DATA BLOCK 19 04611 1302 TAD TEMP2 20 04612 7041 CIA 21 04613 3306 DCA CNTR3 /MINUS BLOCK LENGTH 22 04614 1313 TAD PTS 23 04615 1306 TAD CNTR3 24 04616 1306 TAD CNTR3 25 04617 7041 CIA 26 04620 3307 DCA CNTR4 /ACTUAL # OF POINTS TO BE SHIFTED 27 04621 1313 TAD PTS 28 04622 7010 RAR 29 04623 1311 TAD ADD1 30 04624 1302 TAD TEMP2 31 04625 3312 DCA ADD2 /ADDRESS OF 2ND BLOCK OF 2ND HALF 32 04626 1314 TAD M7 33 04627 3303 DCA CNTR0 /MINUS 7, MINUS 6, MINUS 5, ... 34 04630 1306 LOOP1, TAD CNTR3 35 04631 3310 DCA CNTR5 36 04632 1711 SLOOP1, TAD I ADD1 /GET DATUM 37 04633 4265 JMS SBSB /SHIFT 38 04634 3711 DCA I ADD1 /DEPOSIT SHIFTED DATUM 39 04635 2311 ISZ ADD1 /UPDATE ADDRESS 40 04636 2307 ISZ CNTR4 /ALL COMPLETE? 41 04637 2306 ISZ CNTR3 /NO, BLOCK COMPLETE? 42 04640 5232 JMP SLOOP1 /NO, GET NEXT DATUM 43 04641 2303 ISZ CNTR0 /YES, REDUCE SHIFT OR GO TO 2ND HALF 44 04642 5230 JMP LOOP1 /DO NEXT BLOCK 45 04643 7300 CLA CLL /SECOND HALF INITIALIZATION 46 04644 7001 IAC 47 04645 7041 CIA 48 04646 3303 DCA CNTR0 /MINUS 1, MINUS 2, MINUS 3, ... 49 04647 1306 LOOP2, TAD CNTR3 50 04650 3310 DCA CNTR5 51 04651 1712 SLOOP2, TAD I ADD2 /GET DATUM 52 04652 4265 JMS SBSB /SHIFT 53 04653 3712 DCA I ADD2 /DEPOSIT SHIFTED DATUM 54 04654 2312 ISZ ADD2 /UPDATE ADDRESS 55 04655 2307 ISZ CNTR4 /ALL COMPLETE? 56 04656 5260 JMP SKIP /NO, SKIP 57 04657 5600 JMP I ABOD /YES, RETURN 58 04660 2310 SKIP, ISZ CNTR5 /BLOCK COMPLETE? 59 04661 5251 JMP SLOOP2 /NO, GET NEXT DATUM 60 04662 1303 TAD CNTR0 /YES, INITIALIZE FOR NEXT BLOCK 61 04663 7041 CIA 62 04664 5247 JMP LOOP2 63 04665 0000 SBSB, 0 /SHIFT SUB. (MODIFIED DEC-08-FMJA-D) 64 04666 3301 DCA TEMP1 /STORE NUMBER 65 04667 1303 TAD CNTR0 /GET SHIFT COUNTER 66 04670 3315 DCA CNT /STORE FOR LOCAL USE 67 04671 1301 TAD TEMP1 68 04672 7100 LOOP3, CLL 69 04673 7510 SPA 70 04674 7020 CML 71 04675 7010 RAR 72 04676 2315 ISZ CNT 73 04677 5272 JMP LOOP3 74 04700 5665 JMP I SBSB 75 04701 0000 TEMP1, 0 76 04702 0000 TEMP2, 0 77 04703 0000 CNTR0, 0 78 04704 0000 CNTR1, 0 79 04705 0000 CNTR2, 0 80 04706 0000 CNTR3, 0 81 04707 0000 CNTR4, 0 82 04710 0000 CNTR5, 0 83 04711 0000 ADD1, 0 84 04712 0000 ADD2, 0 85 04713 0000 PTS, 0 86 04714 7771 M7, 7771 87 04715 0000 CNT, 0 88 $ ABOD 4600 ADD1 4711 ADD2 4712 CNT 4715 CNTR0 4703 CNTR1 4704 unreferenced CNTR2 4705 unreferenced CNTR3 4706 CNTR4 4707 CNTR5 4710 LOOP1 4630 LOOP2 4647 LOOP3 4672 M7 4714 PTS 4713 SBSB 4665 SKIP 4660 SLOOP1 4632 SLOOP2 4651 TEMP1 4701 TEMP2 4702