You could use a DFSORT job like this:
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=... input file (VB/23040)
//SORTOUT DD DSN=... output file (FB/80)
//SYSIN DD *
OPTION COPY
OUTFIL VTOF,BUILD=(5,80,/,85,80,/,165,80,/,245,80,/,325,80,/,
405,80,/,485,80,/,565,80,/,645,80,/,725,80,/,
...
...)
/*
You'd need to fill in all of the lines to get to 23040. I'm assuming you don't want the RDW (positions 1-4 of the VB record) in your FB records - that's why I started at position 5.
We could use DFSORT to generate the OUTFIL statement rather than coding it by hand. If you want me to show you how, tell me if you want the RDW in your first FB output record or not. Note that since the RDW is the first 4 bytes, if you start at position 5 for the first output record, the last output record will actually be 4 bytes short (76 bytes) so it will be padded with 4 blanks at the end.