It gets a little trickier to insert a missing range. Inorder to capture the missing range records you need to have a dummy record with the range. Create a 80 byte file with the contents shown for INB ddname. Have the range description in pos 20.
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//INA DD *
00:10:00.300
00:02:00.000
00:00:02.012
30:00:02.010
20:00:02.010
08:10:02.009
//INB DD *
----+----1----+----2----+----3----+----4----+----5----+----6----+--
0 AND 3 MIN
3 AND 5 MIN
5 AND HIGHER
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
JOINKEYS F1=INA,FIELDS=(20,1,A)
JOINKEYS F2=INB,FIELDS=(20,1,A)
JOIN UNPAIRED
REFORMAT FIELDS=(F1:20,12,F2:20,12,?)
INREC IFTHEN=(WHEN=(25,1,CH,EQ,C'B'),OVERLAY=(25:C'1')),
IFTHEN=(WHEN=(25,1,CH,EQ,C'2'),OVERLAY=(25:C'0'))
OUTFIL REMOVECC,NODETAIL,BUILD=(80X),
SECTIONS=(13,1,
TRAILER3=('# OF RECORDS BETWEEN ',13,12,' = ',
TOT=(25,1,ZD,M11,LENGTH=7)))
//*
//JNF1CNTL DD *
INREC IFTHEN=(WHEN=INIT,BUILD=(1,8,UFF,M11,LENGTH=6)),
IFTHEN=(WHEN=INIT,
OVERLAY=(08:1,2,ZD,MUL,+3600,ADD,3,2,ZD,MUL,+60,ADD,5,2,ZD,
M11,LENGTH=8)),
IFTHEN=(WHEN=(8,8,ZD,LE,180),OVERLAY=(20:C'0 AND 3 MIN ')),
IFTHEN=(WHEN=(8,8,ZD,GT,180,AND,8,8,ZD,LE,300),
OVERLAY=(20:C'3 AND 5 MIN ')),
IFTHEN=(WHEN=NONE,OVERLAY=(20:C'5 AND HIGHER'))
//*