LIST "pvdlv.lst" ' ' ********************************** x&=0 xx&=1 vl&=0 ' ' ********************************** ' !insert vibrato pvdld ' !range = 0 to/and 99 ' ********************************** vl&=67 ' ********************************** ' !decipher @new END ' ' ' ********************************** > PROCEDURE old ' vl&=99 !range = 0 to/and 99 ' x&=0 y&=1 ' FOR v&=0 TO vl& IF v&=16 PRINT y&=1 x&=(y&*16)+(y&-1) ELSE IF v&=32 PRINT y&=2 x&=(y&*16)+(y&-1) ELSE IF v&=48 PRINT y&=4 x&=(y&*16)+(y&-1) ELSE IF v&=64 PRINT y&=8 x&=(y&*16)+(y&-1) ELSE IF v&=80 PRINT y&=16 x&=(y&*16)+(y&-1) ELSE IF v&=96 PRINT y&=32 x&=(y&*16)+(y&-1) ENDIF ' ' PRINT HEX$(x&);" "; EXIT IF v&=vl& x&=x&+y& ' NEXT v& ' PRINT HEX$(x& DIV 256) PRINT HEX$(x& MOD 256) PRINT ' END RETURN > PROCEDURE new ' ' ********************************** stepbase&=16 ' PRINT stepbase& step16&=vl& DIV stepbase& ! current levels of 16groups ' PRINT step16& stepindex&=(vl& MOD stepbase&) ! index 0-15 of present step ' PRINT stepindex& stepmul&=SHR(BSET(xx&,step16&),1) ! incremental change rate ' PRINT stepmul& ' IF vl&>15 x&=(stepmul&*stepbase&)+(stepmul&-1)+(stepindex&*stepmul&) ELSE x&=vl& AND &HF ENDIF ' PRINT HEX$(x& DIV 256); PRINT HEX$(x& MOD 256);" "; ' RETURN > FUNCTION base(a|) DEC a| IF a|>32 a|=0 ENDIF RETURN a| ENDFUNC ' ' ' ****old parts ,,,make one line ???? ' x&=(stepmul&*16)+(FN base(stepmul&-1))+(stepindex&*stepmul&) ' ''PRINT (FN base(stepmul&-1)*stepindex&+1) OR stepindex&;" "; ' '''x&=((stepmul&*16)+((FN base(stepmul&-1)*(stepindex&+1))+stepindex&)) '