A reverse concatenation coding scheme for storage systems in which the information is encoded first by a modulation (constraint) code and then by a systematic error-correcting code is considered. In this scheme, the output of the modulation coding stage has certain positions left "unconstrained"-in the sense that any way of filling them with bits results in a sequence that satisfies the constraint. These positions are then used to store the parity-check bits of the error-correcting code so that the result is a valid constrained sequence. The tradeoff function defines the maximum overall rate of the encoding scheme for a given density of unconstrained positions. This function is determined for two families of RLL constraints: RLL(d, ∞) and RLL(d, 2d+2). For RLL(d, 2d+2), a curious dichotomy in the shape of the tradeoff function between different ranges of values of d is shown to exist.