1 /* 2 * extern.c 3 * 4 * Global data. 5 * 6 */ 7 8 #include "ztypes.h" 9 10 /* Game header data */ 11 12 zbyte_t h_type = 0; 13 zbyte_t h_config = 0; 14 zword_t h_version = 0; 15 zword_t h_data_size = 0; 16 zword_t h_start_pc = 0; 17 zword_t h_words_offset = 0; 18 zword_t h_objects_offset = 0; 19 zword_t h_globals_offset = 0; 20 zword_t h_restart_size = 0; 21 zword_t h_flags = 0; 22 zword_t h_synonyms_offset = 0; 23 zword_t h_file_size = 0; 24 zword_t h_checksum = 0; 25 zbyte_t h_interpreter = INTERP_MSDOS; 26 zbyte_t h_interpreter_version = 'B'; /* Interpreter version 2 */ 27 zword_t h_alternate_alphabet_offset = 0; 28 29 /* Game version specific data */ 30 31 int story_scaler = 0; 32 int story_shift = 0; 33 int property_mask = 0; 34 int property_size_mask = 0; 35 36 /* Stack and PC data */ 37 38 zword_t stack[STACK_SIZE]; 39 zword_t sp = STACK_SIZE; 40 zword_t fp = STACK_SIZE - 1; 41 zword_t frame_count = 0; /* frame pointer for get_fp */ 42 unsigned long pc = 0; 43 int interpreter_state = RUN; 44 int interpreter_status = 0; 45 46 /* Data region data */ 47 48 unsigned int data_size = 0; 49 zbyte_t *datap = NULL; 50 zbyte_t *undo_datap = NULL; 51 52 /* Screen size data */ 53 54 int screen_rows = 0; 55 int screen_cols = 0; 56 57 /* Current window data */ 58 59 int screen_window = TEXT_WINDOW; 60 61 /* Formatting and output control data */ 62 63 int formatting = ON; 64 int outputting = ON; 65 int redirect_depth = 0; /* 1 or higher means ON */ 66 int scripting_disable = OFF; 67 int scripting = OFF; 68 int recording = OFF; 69 int replaying = OFF; 70 int font = 1; 71 72 /* Status region data */ 73 74 int status_active = OFF; 75 int status_size = 0; 76 77 /* Text output buffer data */ 78 79 int lines_written = 0; 80 int status_pos = 0; 81 82 /* Dynamic buffer data */ 83 84 /*char *line = NULL;*/ 85 char *status_line = NULL; 86 87 /* Character translation tables */ 88 89 char lookup_table[3][26]; 90