Need help in splitting a line into fields in shell scripting

I have a line of more than 3000 bytes which will contain & as fields separator..I am using following awk command ..Its working but its not accepting the line more than 3000 bytes...Anyother alternate solution even in othe shell command also fine...

awk -F '&' '{for( i=1; i<=NF; i++ ) print $i}' file1

here file1 contains a line of more than 3000 bytes..

" HS_SYS=sys19&HS_ENV=lps&PRJ_NM=111111&DFU_TYPE=DFU&dfu_dataset=%2FHS_Data_00%2FDart%2FOut%2Fsys19%2Flps%2F400127.U&dfu_format_get=%2FHS_Appl_00%2FDatapull%2FDml%2Fdart_ufile.dml&dfc_file=%2FHS_Data_01%2F400127.C&dfu_reform_xfr=nfields%3D16%260_proj%3DUPC_NUM%261_proj%3DPRDC_GRP_NUM%262_proj%3DMODULE_NUM%263_proj%3DUPC_D..................... "

i) use an awk implementation which deals with long lines (e.g. GNU awk)
ii)

#!/bin/sh
for line in `cat file1`
do
  echo $line|tr \& \\n
done

(but your tr is likely to fail the same way your awk does)

awk 1 RS=\& file
tr \& '\n'<file