-+#define STACK_SIZE (4096)
-+
-+long user_stack [STACK_SIZE];
-+
-+struct {
-+ long * a;
-+ short b;
-+ } stack_start = { & user_stack [STACK_SIZE] , __BOOT_DS };
-+
-+static void setup_normal_output_buffer(void)
-+{
-+#ifdef STANDARD_MEMORY_BIOS_CALL
-+ if (RM_EXT_MEM_K < 1024) error("Less than 2MB of memory");
-+#else
-+ if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) < 1024) error("Less than 2MB of memory");
-+#endif
-+ output_data = (char *)0x100000; /* Points to 1M */
-+ free_mem_end_ptr = (long)real_mode;
-+}
-+
-+struct moveparams {
-+ uch *low_buffer_start; int lcount;
-+ uch *high_buffer_start; int hcount;
-+};
-+
-+static void setup_output_buffer_if_we_run_high(struct moveparams *mv)
-+{
-+ high_buffer_start = (uch *)(((ulg)&end) + HEAP_SIZE);
-+#ifdef STANDARD_MEMORY_BIOS_CALL
-+ if (RM_EXT_MEM_K < (3*1024)) error("Less than 4MB of memory");
-+#else
-+ if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) <
-+ (3*1024))
-+ error("Less than 4MB of memory");
-+#endif
-+ mv->low_buffer_start = output_data = (char *)LOW_BUFFER_START;
-+ low_buffer_end = ((unsigned int)real_mode > LOW_BUFFER_MAX
-+ ? LOW_BUFFER_MAX : (unsigned int)real_mode) & ~0xfff;
-+ low_buffer_size = low_buffer_end - LOW_BUFFER_START;
-+ high_loaded = 1;
-+ free_mem_end_ptr = (long)high_buffer_start;
-+ if ( (0x100000 + low_buffer_size) > ((ulg)high_buffer_start)) {
-+ high_buffer_start = (uch *)(0x100000 + low_buffer_size);
-+ mv->hcount = 0; /* say: we need not to move high_buffer */
-+ }
-+ else mv->hcount = -1;
-+ mv->high_buffer_start = high_buffer_start;
-+}
-+
-+static void close_output_buffer_if_we_run_high(struct moveparams *mv)
-+{
-+ if (bytes_out > low_buffer_size) {
-+ mv->lcount = low_buffer_size;
-+ if (mv->hcount)
-+ mv->hcount = bytes_out - low_buffer_size;
-+ } else {
-+ mv->lcount = bytes_out;
-+ mv->hcount = 0;
-+ }
-+}