REGISTER_A = 0
REGISTER_B = 1
REGISTER_C = 2
REGISTER_D = 3

_max_parameter_count = 15
_function_parameter_start = REGISTER_D + 1
FUNCTION_PARAMETER_REGISTERS = list(
    range(_function_parameter_start, _function_parameter_start + _max_parameter_count)
)

FIRST_PROGRAM_STACK_HEAP_ADDRESS = max(FUNCTION_PARAMETER_REGISTERS) + 1
PROGRAM_STACK_LIMIT = FIRST_PROGRAM_STACK_HEAP_ADDRESS + 2048 * 128

FREE_HEAP_ALLOCATION_COUNTER = PROGRAM_STACK_LIMIT + 1
FREE_HEAP_START = FREE_HEAP_ALLOCATION_COUNTER + 1
