Until version 0.90 of NASM was released in October 1996, NASM only supported output of flat-format executable files (e.g. MS-DOS COM files). In version 0.90, Simon Tatham added support for an object-file output interface, along with support for DOS .OBJ files for 16-bit code only.
NASM thus lacked a 32-bit object format. To address this lack, and as an exercise to learn the object-file interface, developer Julian Hall put together the first version of RDOFF, which was released in NASM version 0.91.
Since this initial version, there has been one major update to the RDOFF format, which added a record-length indicator on each header record, allowing programs to skip over records whose format they do not recognise, and support for multiple segments; RDOFF1 only supported three segments: text, data and bss (containing uninitialized data).