How to setup Marlin to use a moving bed (up-down)?
You can control in Marlin what the direction of the stepper motor is, e.g. my Hypercube CoreXY printer (which has a similar setup like you described) has the following set (in the Marlin Configuration.h file) to ensure the platform raises when it has to decrease height:
// Invert the stepper direction. Change (or reverse the motor connector) 
// if an axis goes the wrong way.
#define INVERT_Z_DIR true

Furthermore, it matters where the Z endstop is located, e.g. using a bed probe sensor or a min Z endstop, you need to home towards a decreasing height (in the direction of your probe/endstop):
// Direction of endstops when homing; 1=MAX, -1=MIN
#define Z_HOME_DIR -1

Don't forget to set a max Z height that falls within the printer volume, e.g.:
#define Z_MAX_POS 345

If the bed is heavy, you should also prevent the steppers to lose power when not being used, so at least set Z to false:
// Disables axis stepper immediately when it's not being used.
// WARNING: When motors turn off there is a chance of losing position accuracy!
#define DISABLE_Z false