              ;***************************************************************
              ; 
              ; A stereo reverb for the DSP56001 signal processor.  Based on,
              ; 
              ;       Moorer, James A. "About This Reverberation Business."
              ;       Computer Music Journal Vol 3, No. 2 (1979), pp. 13-28.
              ;
              ;   reprinted in,
              ;
              ;       Roads, Curtis, and Strawn, John, ed., _Foundations
              ;       of Computer Music_, pp. 605-639, MIT Press, 1985.
              ;       ISBN 0-262-68051-3 (paper)
              ;       ISBN 0-262-181142 (hard)
              ;
              ; Each comb filter uses a low-pass filter in the feedback path.
              ; The combs and all-pass filter delay lines use a prime-number
              ; of stages to improve diffusion.
              ;
              ; The output all-pass stage is replicated for left/right
              ; decorrelation.  Each side uses slightly different gains
              ; and delay lengths.  This works a lot better than just inverting
              ; one side and adding in the input.
              ;
              ; I left out the early-reflection FIR filter because I needed the cycles
              ; for other effects.
              ;
              ; Quinn Jensen (jensenq@qcj.icon.com)
              ;
              ;***************************************************************
P:0000 0040           psect   vectors         p:$0000:$0040
P:0040 0200           psect   hf_code         p:$0040:$0200
X:0000 0040           psect   hf_datax        x:$0000:$0040
X:0040 0100           psect   hf_datax1       x:$0040:$0100
Y:0000 0040           psect   hf_datay        y:$0000:$0040
Y:0040 0100           psect   hf_datay1       y:$0040:$0100
X:0400 1000           psect   midi_data       x:$0400:$1000
X:1000 F000           psect   lo_data         x:$1000:$F000
P:F000 FE00           psect   lo_code         p:$F000:$FE00
P:FE00 FFFF           psect   loader          p:$FE00:$FFFF
X:FFC0 FFFF           psect   iox             x:$FFC0:$FFFF
Y:FFC0 FFFF           psect   ioy             y:$FFC0:$FFFF
              ;
              ; some oft-used constants
              ;
X:0000                psect   hf_datax
X:0000 00FFFF ffff    dc      $FFFF           ;used a lot for modulus
7FFFFF        ONE     equ     $7FFFFF         ;"one"
X:0001 7FFFFF one     dc      ONE             ;"one"
              ;
              ; L/R inputs and outputs
              ;
X:0002 000000 in_l    dc      0.0      
X:0003 000000 in_r    dc      0.0      
X:0004 000000 out_l   dc      0.0      
X:0005 000000 out_r   dc      0.0      
              ;
              ; recompute comb gains g1 and g2
              ;
X:0006        recalc_comb_gains
X:0006 609F00         move            x:<constsp,r0
X:0007 058020         movec           x:<ffff,m0
X:0008 57F000         move            x:lowpass_cutoff_start,b
X:0009 000400
X:000A 47F000         move            x:lowpass_cutoff_slope,y1
X:000B 000401
X:000C 45F000         move            x:comb_g,x1
X:000D 000402
X:000E 244000         move            #0.5,x0
              
X:000F 060680         do      #6,recalc_loop
X:0010 000017
X:0011 205813           clr   a       (r0)+           ;skip over the modulus const
X:0012 21E640           add   x0,a    b,y0
X:0013 2000D2           mac   x0,y0,a                 ;g1 = .5 * b + .5
X:0014 21C613           clr   a       a,y0            ;y0 = g1
X:0015 4E5860           add   x1,a    y0,y:(r0)+      ;store g1 in table
X:0016 2000E7           macr  -x1,y0,a                ;g2 = g(1-g1) = g - g*g1 with limiting
X:0017 5E5878           add   y1,b    a,y:(r0)+       ;update b, store g2 in table
X:0018        recalc_loop
X:0018 00000C         rts
              
X:0400                psect   midi_data
              ;
              ; default values for midi-derived parameters
              ;
X:0400        lowpass_cutoff_start
X:0400 CE0000         dc      -0.3906250      ; ctl value of 39
X:0401        lowpass_cutoff_slope
X:0401 060000         dc      0.0468750       ; ctl value of 67
X:0402        comb_g
X:0402 6A9106         dc      0.8325507974    ; ctl value of 57
              ;
              ; preset comb-length arrays
              ;
              
              
              
              ; comb lenths 383,433,467,523,557,601
X:0403        comblen_1
X:0403 00017E         dc      383-1
X:0404 0001B0         dc      433-1
X:0405 0001D2         dc      467-1
X:0406 00020A         dc      523-1
X:0407 00022C         dc      557-1
X:0408 000258         dc      601-1
              
              
              ; comb lenths 509,577,631,701,743,797
X:0409        comblen_2
X:0409 0001FC         dc      509-1
X:040A 000240         dc      577-1
X:040B 000276         dc      631-1
X:040C 0002BC         dc      701-1
X:040D 0002E6         dc      743-1
X:040E 00031C         dc      797-1
              
              
              ; comb lenths 683,769,839,937,991,1069
X:040F        comblen_3
X:040F 0002AA         dc      683-1
X:0410 000300         dc      769-1
X:0411 000346         dc      839-1
X:0412 0003A8         dc      937-1
X:0413 0003DE         dc      991-1
X:0414 00042C         dc      1069-1
              
              
              ; comb lenths 919,1021,1117,1249,1319,1427
X:0415        comblen_4
X:0415 000396         dc      919-1
X:0416 0003FC         dc      1021-1
X:0417 00045C         dc      1117-1
X:0418 0004E0         dc      1249-1
X:0419 000526         dc      1319-1
X:041A 000592         dc      1427-1
              
              
              ; comb lenths 1223,1367,1489,1657,1759,1901
X:041B        comblen_5
X:041B 0004C6         dc      1223-1
X:041C 000556         dc      1367-1
X:041D 0005D0         dc      1489-1
X:041E 000678         dc      1657-1
X:041F 0006DE         dc      1759-1
X:0420 00076C         dc      1901-1
              
              
              ; comb lenths 1627,1823,1987,2213,2341,2539
X:0421        comblen_6
X:0421 00065A         dc      1627-1
X:0422 00071E         dc      1823-1
X:0423 0007C2         dc      1987-1
X:0424 0008A4         dc      2213-1
X:0425 000924         dc      2341-1
X:0426 0009EA         dc      2539-1
              
              
              ;;;;;;;;;;;;;;;;;;;;;;;
              ; reverb filters
              ;;;;;;;;;;;;;;;;;;;;;;;
              
              ;  Reverb filter lengths and coefficients     
              ;  6 comb reverb with prime delay lines
              ;  Sun Oct 24 13:53:51 1993
              ;  
              ;                          Sample rate        32.5520830 kHz      
              ;                          g                   0.8400000
              ;  
              ;                    status      STABLE       
              ;         delay      near prime lengths actual
              ;  stage   (ms)   1  high   low  best  delay        g1        g2
              ;  ---------------------------------------------------------------
              ;  Comb 1  50.0  1628  1637  1627  1627 49.981 0.3064583 0.5825750
              ;  Comb 2  56.0  1823  1823  1823  1823 56.003 0.3264583 0.5657750
              ;  Comb 3  61.0  1986  1987  1979  1987 61.041 0.3464583 0.5489750
              ;  Comb 4  68.0  2214  2221  2213  2213 67.983 0.3594792 0.5380375
              ;  Comb 5  72.0  2344  2347  2341  2341 71.916 0.3694792 0.5296375
              ;  Comb 6  78.0  2539  2539  2539  2539 77.998 0.4243750 0.4835250
              ;  All      6.0   195   197   193   193  5.929 0.7000000
              
              ; COMB(name, length, modulus, g1, g2)
              
              
              
              
              ; storage for "c1" length=1627 modulus=2048 g1=0.3046875 g2=0.5812382
              
X:1000                psect   lo_data
X:1000                align   2048
X:1000        c1d
00065A        c1m     equ     1627-1
X:165A                org     x:c1d+c1m
X:0019                psect   hf_datax
  0.304688    c1g1    equ     0.3046875
  0.581238    c1g2    equ     0.5812382
              
              
              ; storage for "a1" length=193 modulus=256 g1=0.7000000 g2=0.0000000
              
X:165A                psect   lo_data
X:1700                align   256
X:1700        a1d
0000C0        a1m     equ     193-1
X:17C0                org     x:a1d+a1m
X:0019                psect   hf_datax
       0.7    a1g1    equ     0.7000000
         0    a1g2    equ     0.0000000
              
              
              ; storage for "c2" length=1823 modulus=2048 g1=0.3281250 g2=0.5616459
              
X:17C0                psect   lo_data
X:1800                align   2048
X:1800        c2d
00071E        c2m     equ     1823-1
X:1F1E                org     x:c2d+c2m
X:0019                psect   hf_datax
  0.328125    c2g1    equ     0.3281250
  0.561646    c2g2    equ     0.5616459
              
              
              ; storage for "c3" length=1987 modulus=2048 g1=0.3515625 g2=0.5420536
              
X:1F1E                psect   lo_data
X:2000                align   2048
X:2000        c3d
0007C2        c3m     equ     1987-1
X:27C2                org     x:c3d+c3m
X:0019                psect   hf_datax
  0.351563    c3g1    equ     0.3515625
  0.542054    c3g2    equ     0.5420536
              
              
              ; storage for "c4" length=2213 modulus=4096 g1=0.3750000 g2=0.5224613
              
X:27C2                psect   lo_data
X:3000                align   4096
X:3000        c4d
0008A4        c4m     equ     2213-1
X:38A4                org     x:c4d+c4m
X:0019                psect   hf_datax
     0.375    c4g1    equ     0.3750000
  0.522461    c4g2    equ     0.5224613
              
              
              ; storage for "a2" length=207 modulus=256 g1=0.7500000 g2=0.0000000
              
X:38A4                psect   lo_data
X:3900                align   256
X:3900        a2d
0000CE        a2m     equ     207-1
X:39CE                org     x:a2d+a2m
X:0019                psect   hf_datax
      0.75    a2g1    equ     0.7500000
         0    a2g2    equ     0.0000000
              
              
              ; storage for "c5" length=2341 modulus=4096 g1=0.3984375 g2=0.5028690
              
X:39CE                psect   lo_data
X:4000                align   4096
X:4000        c5d
000924        c5m     equ     2341-1
X:4924                org     x:c5d+c5m
X:0019                psect   hf_datax
  0.398438    c5g1    equ     0.3984375
  0.502869    c5g2    equ     0.5028690
              
              
              ; storage for "c6" length=2539 modulus=4096 g1=0.4218750 g2=0.4832767
              
X:4924                psect   lo_data
X:5000                align   4096
X:5000        c6d
0009EA        c6m     equ     2539-1
X:59EA                org     x:c6d+c6m
X:0019                psect   hf_datax
  0.421875    c6g1    equ     0.4218750
  0.483277    c6g2    equ     0.4832767
              
              
X:0019                psect   hf_datax
X:0019 001700 a1r     dc      a1d
X:001A 0000C0 a1md    dc      a1m
X:001B 59999A a1g1d   dc      a1g1
X:001C 003900 a2r     dc      a2d
X:001D 0000CE a2md    dc      a2m
X:001E 600000 a2g1d   dc      a2g1
Y:0000                psect   hf_datay
Y:0000        curaddrp
Y:0000 000040         dc      curaddr
X:001F                psect   hf_datax
X:001F 000040 constsp dc      consts
X:0020        lowstatep
X:0020 000046         dc      lowstate
              
X:0040                psect   hf_datax1
X:0040        curaddr
X:0040 001000         dc      c1d
X:0041 001800         dc      c2d
X:0042 002000         dc      c3d
X:0043 003000         dc      c4d
X:0044 004000         dc      c5d
X:0045 005000         dc      c6d
              
Y:0040                psect   hf_datay1
Y:0040        consts
Y:0040 00065A         dc      c1m
Y:0041 270000         dc      c1g1
Y:0042 4A6603         dc      c1g2
Y:0043 00071E         dc      c2m
Y:0044 2A0000         dc      c2g1
Y:0045 47E403         dc      c2g2
Y:0046 0007C2         dc      c3m
Y:0047 2D0000         dc      c3g1
Y:0048 456203         dc      c3g2
Y:0049 0008A4         dc      c4m
Y:004A 300000         dc      c4g1
Y:004B 42E003         dc      c4g2
Y:004C 000924         dc      c5m
Y:004D 330000         dc      c5g1
Y:004E 405E03         dc      c5g2
Y:004F 0009EA         dc      c6m
Y:0050 360000         dc      c6g1
Y:0051 3DDC03         dc      c6g2
              
X:0046                psect   hf_datax1
X:0046        lowstate
X:0046 000000         dc      0
X:0047 000000         dc      0
X:0048 000000         dc      0
X:0049 000000         dc      0
X:004A 000000         dc      0
X:004B 000000         dc      0
              
              ;;;;;;;;;;;;;;;;;;;;;;;
              ; miscellaneous signals
              ;;;;;;;;;;;;;;;;;;;;;;;
              
X:0021                psect   hf_datax
X:0021        L_overall
X:0021 7FFFFF         dc      $7FFFFF
X:0022        R_overall
X:0022 7FFFFF         dc      $7FFFFF
              
              ;;;;;;;;;;;;;;;;;;;;;;;
              ; signal vector
              ;;;;;;;;;;;;;;;;;;;;;;;
X:0023                psect   hf_datax
X:0028                align 8
X:0028        signal_vector
X:0028 000000 Lin     dc      0.0
X:0029 000000 Rin     dc      0.0
X:002A        Reverb_L
X:002A 000000         dc      0.0
X:002B        Reverb_R        
X:002B 000000         dc      0.0
              
X:002C        Lout
X:002C 000000         dc      0
X:002D        Rout
X:002D 000000         dc      0
              
Y:0001                psect hf_datay
Y:0001        signal_vectorp
Y:0001 000028         dc      signal_vector
Y:0002        signal_mod
Y:0002 000003         dc      4-1
              
Y:0003        gain_vectorsp
Y:0003 000052         dc      gain_vectors
              ;;;;;;;;;;;;;;;;;;;;;;;
              ; gain matrix
              ;;;;;;;;;;;;;;;;;;;;;;;
Y:0052                psect   hf_datay1
Y:0052        gain_vectors
Y:0052        Reverb_gain_vector
Y:0052 400000 Reverb_Lin      dc 0.5
Y:0053 400000 Reverb_Rin      dc 0.5
Y:0054 000000 Reverb_Reverb_L dc 0.0
Y:0055 000000 Reverb_Reverb_R dc 0.0
              
Y:0056        Lout_gain_vector
Y:0056 000000 Lout_Lin        dc 0.0
Y:0057 000000 Lout_Rin        dc 0.0
Y:0058 7FFFFF Lout_Reverb_L   dc ONE
Y:0059 000000 Lout_Reverb_R   dc 0.0
              
Y:005A        Rout_gain_vector
Y:005A 000000 Rout_Lin        dc 0.0
Y:005B 000000 Rout_Rin        dc 0.0
Y:005C 000000 Rout_Reverb_L   dc 0.0
Y:005D 800000 Rout_Reverb_R   dc -1.0
              
              ;***************************************************************
              ;
              ;       init code - call hf_init at first and any time when
              ;       parameters change
              ;
              ;***************************************************************
P:F000                psect   lo_code
              
P:F000        hf_init
              ;
              ;       clear out the filter delay lines
              ;
              
              
              
P:F000 60F400         move            #c1d,r0
P:F001 001000
P:F002 05F420         movec           #c1m,m0
P:F003 00065A
P:F004 0BF080         jsr     clear_line_r0
P:F005 00F033
              
              
P:F006 60F400         move            #c2d,r0
P:F007 001800
P:F008 05F420         movec           #c2m,m0
P:F009 00071E
P:F00A 0BF080         jsr     clear_line_r0
P:F00B 00F033
              
              
P:F00C 60F400         move            #c3d,r0
P:F00D 002000
P:F00E 05F420         movec           #c3m,m0
P:F00F 0007C2
P:F010 0BF080         jsr     clear_line_r0
P:F011 00F033
              
              
P:F012 60F400         move            #c4d,r0
P:F013 003000
P:F014 05F420         movec           #c4m,m0
P:F015 0008A4
P:F016 0BF080         jsr     clear_line_r0
P:F017 00F033
              
              
P:F018 60F400         move            #c5d,r0
P:F019 004000
P:F01A 05F420         movec           #c5m,m0
P:F01B 000924
P:F01C 0BF080         jsr     clear_line_r0
P:F01D 00F033
              
              
P:F01E 60F400         move            #c6d,r0
P:F01F 005000
P:F020 05F420         movec           #c6m,m0
P:F021 0009EA
P:F022 0BF080         jsr     clear_line_r0
P:F023 00F033
              
              
P:F024 60F400         move            #a1d,r0
P:F025 001700
P:F026 05F420         movec           #a1m,m0
P:F027 0000C0
P:F028 0BF080         jsr     clear_line_r0
P:F029 00F033
              
              
P:F02A 60F400         move            #a2d,r0
P:F02B 003900
P:F02C 05F420         movec           #a2m,m0
P:F02D 0000CE
P:F02E 0BF080         jsr     clear_line_r0
P:F02F 00F033
              
P:F030 0BF080         jsr     recalc_comb_gains
P:F031 000006
P:F032 00000C         rts
              
P:F033        clear_line_r0
P:F033 200013         clr     a
P:F034 0600A0         rep     #0
P:F035 565800           move          a,x:(r0)+
P:F036 00000C         rts
              
              ;***************************************************************
              ;
              ;       sample rate computations
              ;
              ;       Call hf_comp once per sample.
              ;       Globals in_l and in_r should have the left and right
              ;       input samples.  When hf_comp returns, out_l and out_r
              ;       will be ready.
              ;
              ;***************************************************************
              
              ;
              ; fs = 32.552083 kHz
              ;
P:0040                psect   hf_code
              
P:0040        hf_comp
              ;
              ;       copy inputs
              ;
P:0040 568200         move            x:<in_l,a
P:0041 562800         move            a,x:<Lin
P:0042 568300         move            x:<in_r,a
P:0043 562900         move            a,x:<Rin
              ;
              ;       compute outputs using matrix multiply
              ;
              ; [reverb_in out_l out_r] = [gain_vector] * [signal_vector]
              ;
P:0044 688100         move            y:<signal_vectorp,r0
P:0045 058260         movec           y:<signal_mod,m0
P:0046 6C8300         move            y:<gain_vectorsp,r4
P:0047 058024         movec           x:<ffff,m4
P:0048 47A100         move            x:<L_overall,y1         ;and wait for m4
P:0049 F09813         clr     a       x:(r0)+,x0 y:(r4)+,y0
P:004A F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:004B F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:004C F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:004D F098D3         macr    x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:004E 21CF13         clr     a       a,b                     ;b is reverb_in
P:004F F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:0050 F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:0051 F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:0052 F098D3         macr    x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:0053 21C513         clr     a       a,x1
P:0054 47A2F0         mpy     x1,y1,a x:<R_overall,y1
P:0055 560413         clr     a       a,x:<out_l
P:0056 F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:0057 F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:0058 F098D2         mac     x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:0059 F098D3         macr    x0,y0,a x:(r0)+,x0 y:(r4)+,y0
P:005A 21C513         clr     a       a,x1
P:005B 2000F0         mpy     x1,y1,a
P:005C 560513         clr     a       a,x:<out_r
              ;
              ; r1    lowstate vector
              ; m1    -1
              ; r4    ptr to modulus,g1,g2 constants
              ; m4    -1
              ; r5    curaddr ptr
              ; m5    -1
              ; b     comb out accum
              ; x0    scaled comb in
              ;
              ;
              ;       set up reverb input
              ;
P:005D 21E41B         clr     b       b,x0                    ;get reverb_in
P:005E 250800         move            #1.0/16,x1              ;allow 4 bits of headroom
P:005F 2000A1         mpyr    x0,x1,a                         ;and 4 bits of noise
P:0060 21C400         move            a,x0
P:0061 61A000         move            x:<lowstatep,r1
P:0062 058021         movec           x:<ffff,m1
P:0063 649F00         move            x:<constsp,r4
P:0064 0464A1         movec           m1,m4
P:0065 6D8000         move                    y:<curaddrp,r5
P:0066 0465A1         movec           m1,m5
              ;
              ;       do the six combs
              ;
P:0067 060680         do      #6,comb_loop
P:0068 000072
P:0069 60E500           move          x:(r5),r0               ;r0=curaddr
P:006A 05DC60           movec         y:(r4)+,m0              ;m0=modulus
P:006B F58100           move          x:(r1),x1 y:(r4)+,y1    ;x1=lowstate, y1=g1, wait for m0
P:006C 46D800           move          x:(r0)+,y0              ;y0=delay out
P:006D 20CE58           add   y0,b            y0,a            ;a=delay out
P:006E 4FDCF3           macr  x1,y1,a         y:(r4)+,y1      ;a=out+g1*lowstate, y1=g2
P:006F 181913           clr   a       a,x:(r1)+ a,y0          ;y0=new lowstate
P:0070 605D40           add   x0,a    r0,x:(r5)+              ;a=in, save ptr
P:0071 2000B3           macr  y0,y1,a                         ;a=in+g2*g1*lowstate
P:0072 567800           move          a,x:-(r0)               ;store delay in (takes 2 cyc)
P:0073        comb_loop
              ;
              ;       scale
              ;
P:0073 241519         rnd     b       #$15,x0         ;scale by ~1/6
P:0074 21E600         move            b,y0
P:0075 2000D9         mpyr    x0,y0,b
P:0076 21E700         move            b,y1            ;save b for right chan
              ;
              ;       allpass L
              ;
P:0077 609900         move            x:<a1r,r0
P:0078 059A20         movec           x:<a1md,m0
P:0079 449B00         move            x:<a1g1d,x0
P:007A 45E000         move            x:(r0),x1
P:007B 20AEAB         macr    x0,x1,b x1,a
P:007C 21E600         move                    b,y0
P:007D 5758D7         macr    -x0,y0,a b,x:(r0)+
P:007E 601932         asl     a       r0,x:<a1r
P:007F 200032         asl     a                       ;get rid of the headroom
P:0080 200032         asl     a
P:0081 200032         asl     a
P:0082 562A00         move            a,x:<Reverb_L
              ;
              ;       allpass R
              ;
P:0083 609C79         tfr     y1,b    x:<a2r,r0
P:0084 059D20         movec           x:<a2md,m0
P:0085 449E3E         neg     b       x:<a2g1d,x0
P:0086 45E000         move            x:(r0),x1
P:0087 20AEAB         macr    x0,x1,b x1,a
P:0088 21E600         move                    b,y0
P:0089 5758D7         macr    -x0,y0,a b,x:(r0)+
P:008A 601C32         asl     a       r0,x:<a2r
P:008B 200032         asl     a
P:008C 200032         asl     a
P:008D 200032         asl     a
P:008E 562B00         move            a,x:<Reverb_R
              ;
              ;       done
              ;
P:008F 00000C         rts
              
                      end

Summary of psect usage

                 section seg base last top      used       avail    total
-------------------------------------------------------------------------
                 vectors  P  0000 0000 0040     0   0%     64 100%     64
                 hf_code  P  0040 0090 0200    80  17%    368  82%    448
                hf_datax  X  0000 002E 0040    46  71%     18  28%     64
               hf_datax1  X  0040 004C 0100    12   6%    180  93%    192
                hf_datay  Y  0000 0004 0040     4   6%     60  93%     64
               hf_datay1  Y  0040 005E 0100    30  15%    162  84%    192
               midi_data  X  0400 0427 1000    39   1%   3033  98%   3072
                 lo_data  X  1000 59EA F000 18922  32%  38422  67%  57344
                 lo_code  P  F000 F037 FE00    55   1%   3529  98%   3584
                  loader  P  FE00 FE00 FFFF     0   0%    511 100%    511
                     iox  X  FFC0 FFC0 FFFF     0   0%     63 100%     63
                     ioy  Y  FFC0 FFC0 FFFF     0   0%     63 100%     63


Symbol Table
-------------------------------------
            ffff 000000
             one 000001
             ONE 7FFFFF
        lowstate 000046
       lowstatep 000020
lowpass_cutoff_slope 000401
lowpass_cutoff_start 000400
    gain_vectors 000052
   gain_vectorsp 000003
            in_r 000003
            in_l 000002
       comb_loop 000073
          consts 000040
         constsp 00001F
       comblen_6 000421
       comblen_5 00041B
       comblen_4 000415
       comblen_3 00040F
       comblen_2 000409
       comblen_1 000403
          comb_g 000402
       R_overall 000022
         hf_comp 000040
         hf_init 00F000
   clear_line_r0 00F033
       L_overall 000021
         curaddr 000040
        curaddrp 000000
     recalc_loop 000018
recalc_comb_gains 000006
      signal_mod 000002
  signal_vectorp 000001
   signal_vector 000028
           out_r 000005
           out_l 000004
   Lout_Reverb_R 000059
   Lout_Reverb_L 000058
        Lout_Rin 000057
        Lout_Lin 000056
Lout_gain_vector 000056
            Lout 00002C
             Lin 000028
 Reverb_Reverb_R 000055
 Reverb_Reverb_L 000054
      Reverb_Rin 000053
      Reverb_Lin 000052
Reverb_gain_vector 000052
        Reverb_R 00002B
        Reverb_L 00002A
             Rin 000029
   Rout_Reverb_R 00005D
   Rout_Reverb_L 00005C
        Rout_Rin 00005B
        Rout_Lin 00005A
Rout_gain_vector 00005A
            Rout 00002D
           a1g1d 00001B
            a1md 00001A
             a1r 000019
            c3g2 0.5420536000
            c3g1 0.3515625000
             c3m 0007C2
             c3d 002000
            a1g2 0.0000000000
            a1g1 0.7000000000
             a1m 0000C0
             a1d 001700
            c2g2 0.5616459000
            c2g1 0.3281250000
             c2m 00071E
             c2d 001800
            c1g2 0.5812382000
            c1g1 0.3046875000
             c1m 00065A
             c1d 001000
           a2g1d 00001E
            a2md 00001D
             a2r 00001C
            a2g2 0.0000000000
            a2g1 0.7500000000
             a2m 0000CE
             a2d 003900
            c6g2 0.4832767000
            c6g1 0.4218750000
             c6m 0009EA
             c6d 005000
            c5g2 0.5028690000
            c5g1 0.3984375000
             c5m 000924
             c5d 004000
            c4g2 0.5224613000
            c4g1 0.3750000000
             c4m 0008A4
             c4d 003000
errors=0
