def convert_differend_width(src_reg, dst_reg):
src_value = src_reg.value<EOL>if src_reg.WIDTH == <NUM_LIT:8> and dst_reg.WIDTH == <NUM_LIT:16>:<EOL><INDENT>src_value += <NUM_LIT><EOL><DEDENT>elif src_reg.WIDTH == <NUM_LIT:16> and dst_reg.WIDTH == <NUM_LIT:8>:<EOL><INDENT>src_value = src_value & <NUM_LIT><EOL><DEDENT>return src_value<EOL>
e.g.:
 8bit   $cd TFR into 16bit, results in: $ffcd
16bit $1234 TFR into  8bit, results in:   $34

>>> reg8 = ValueStorage8Bit(name="bar", initial_value=0xcd)
>>> reg16 = ValueStorage16Bit(name="foo", initial_value=0x0000)
>>> hex(convert_differend_width(src_reg=reg8, dst_reg=reg16))
'0xffcd'

>>> reg16 = ValueStorage16Bit(name="foo", initial_value=0x1234)
>>> reg8 = ValueStorage8Bit(name="bar", initial_value=0xcd)
>>> hex(convert_differend_width(src_reg=reg16, dst_reg=reg8))
'0x34'

TODO: verify this behaviour on real hardware
see: http://archive.worldofdragon.org/phpBB3/viewtopic.php?f=8&t=4886