the two I/O statements are (AUDIT.TRACE.RCINHST is SET to TRUE) GOSUB OUTPUT.RCINHST .ifdef AUDIT.TRACE.RCINHST WRITE (AUDIT.TRC,RCINHST.FMT) .endif the "OUTPUT.RCINHST" function ultimately invokes: !================ WRITE.TO.RCINHST: !================ RC.GOOD.WRITE$ = Y.ANS$ WRITE (RCINHST.LUN,RCINHST.FMT) KEY=RCINHST.KEY$, _ EXCPSUB=EXCPSUB.WRITE RCINHST.GOOD.WRITE$ = RC.GOOD.WRITE$ RETURN What Appears in the Keyed File: (~~ indicates a break in the file of about 800 bytes :) Key: VULC722013-06-12@11:02000013 55443333332332334333333333332222 65C3722013D06D12011A020000130000 Record: VULC722013-06-12@11:02000013DETAIL~~VULC72 .00 5544333333233233433333333333445444~~554433222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 65C3722013D06D12011A0200001345419C~~65C372000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 What Appears in the Flat Text File: (~~ indicates a break in the file of about 800 bytes :) VULC722013-06-12@11:02000013DETAIL~~VULC72 Monthly-###.##-Office 20 Line 20.00 data names in ^RCINHST.INC: RCINHST.SID$..................RCINHST.PLAN.AFTER$..........RCINHST.PLAN.BEFORE$..........RCINHST.ANNUAL.PLAN.UPLIFT In a nutshell: The file used to "end" at RCINHST.SID$ then, 3 new elements were added: RCINHST.SID$;_ ! 30 30 781!<> RCINHST.PLAN.AFTER$;_ ! 30 30 811!<> RCINHST.PLAN.BEFORE$;_ ! 30 30 841!<> RCINHST.ANNUAL.PLAN.UPLIFT ! 8.2 10 871!<> I will mention that RCINHST.SID$ typically only had about 6 characters in it, so... if 800 is some kind of buffer size, I never would have known this since every record would end before the 800 figure.