diff -urNbB frotz-2.32/Makefile frotz-2.32a/Makefile
--- frotz-2.32/Makefile Fri Oct 17 13:11:10 1997
+++ frotz-2.32a/Makefile        Thu Aug 19 10:32:39 1999
@@ -71,3 +71,5 @@
frotz: $(OBJECTS)
       $(CC) -o frotz $(OBJECTS) $(LIB) $(CURSES)

+clean:
+       rm -f *.o frotz
diff -urNbB frotz-2.32/buffer.c frotz-2.32a/buffer.c
--- frotz-2.32/buffer.c Thu Sep 18 08:21:48 1997
+++ frotz-2.32a/buffer.c        Thu Aug 19 10:38:45 1999
@@ -12,7 +12,7 @@
extern void stream_new_line (void);

static zchar buffer[TEXT_BUFFER_SIZE];
-static bufpos = 0;
+static int bufpos = 0;

static zchar prev_c = 0;

diff -urNbB frotz-2.32/fastmem.c frotz-2.32a/fastmem.c
--- frotz-2.32/fastmem.c        Fri Oct  3 13:04:57 1997
+++ frotz-2.32a/fastmem.c       Thu Aug 19 10:36:11 1999
@@ -55,9 +55,9 @@

static zbyte far *undo[MAX_UNDO_SLOTS];

-static undo_slots = 0;
-static undo_count = 0;
-static undo_valid = 0;
+static int undo_slots = 0;
+static int undo_count = 0;
+static int undo_valid = 0;

/*
 * get_header_extension
diff -urNbB frotz-2.32/files.c frotz-2.32a/files.c
--- frotz-2.32/files.c  Fri Aug 22 06:49:18 1997
+++ frotz-2.32a/files.c Thu Aug 19 10:34:44 1999
@@ -28,7 +28,7 @@
extern char latin1_to_ibm[];
#endif

-static script_width = 0;
+static int script_width = 0;

static FILE *sfp = NULL;
static FILE *rfp = NULL;
diff -urNbB frotz-2.32/frotz.h frotz-2.32a/frotz.h
--- frotz-2.32/frotz.h  Fri Oct  3 13:04:52 1997
+++ frotz-2.32a/frotz.h Thu Aug 19 10:33:43 1999
@@ -398,7 +398,7 @@
extern zword *fp;

extern zword zargs[8];
-extern zargc;
+extern int zargc;

extern bool ostream_screen;
extern bool ostream_script;
@@ -407,29 +407,29 @@
extern bool istream_replay;
extern bool message;

-extern cwin;
-extern mwin;
+extern int cwin;
+extern int mwin;

-extern mouse_x;
-extern mouse_y;
+extern int mouse_x;
+extern int mouse_y;

extern bool enable_wrapping;
extern bool enable_scripting;
extern bool enable_scrolling;
extern bool enable_buffering;

-extern option_attribute_assignment;
-extern option_attribute_testing;
-extern option_object_locating;
-extern option_object_movement;
-extern option_context_lines;
-extern option_left_margin;
-extern option_right_margin;
-extern option_ignore_errors;
-extern option_piracy;
-extern option_undo_slots;
-extern option_expand_abbreviations;
-extern option_script_cols;
+extern int option_attribute_assignment;
+extern int option_attribute_testing;
+extern int option_object_locating;
+extern int option_object_movement;
+extern int option_context_lines;
+extern int option_left_margin;
+extern int option_right_margin;
+extern int option_ignore_errors;
+extern int option_piracy;
+extern int option_undo_slots;
+extern int option_expand_abbreviations;
+extern int option_script_cols;

extern long reserve_mem;

diff -urNbB frotz-2.32/process.c frotz-2.32a/process.c
--- frotz-2.32/process.c        Thu Sep 18 05:37:14 1997
+++ frotz-2.32a/process.c       Thu Aug 19 10:35:09 1999
@@ -10,7 +10,7 @@
zword zargs[8];
int zargc;

-static finished = 0;
+static int finished = 0;

static void __extended__ (void);
static void __illegal__ (void);
diff -urNbB frotz-2.32/random.c frotz-2.32a/random.c
--- frotz-2.32/random.c Sat Jul 19 04:51:36 1997
+++ frotz-2.32a/random.c        Thu Aug 19 10:35:17 1999
@@ -9,8 +9,8 @@

static long A = 1;

-static interval = 0;
-static counter = 0;
+static int interval = 0;
+static int counter = 0;

/*
 * seed_random
diff -urNbB frotz-2.32/redirect.c frotz-2.32a/redirect.c
--- frotz-2.32/redirect.c       Fri Aug 22 02:15:32 1997
+++ frotz-2.32a/redirect.c      Thu Aug 19 10:35:23 1999
@@ -11,7 +11,7 @@

extern zword get_max_width (zword);

-static depth = -1;
+static int depth = -1;

static struct {
    zword xsize;
diff -urNbB frotz-2.32/screen.c frotz-2.32a/screen.c
--- frotz-2.32/screen.c Thu Sep 18 08:17:40 1997
+++ frotz-2.32a/screen.c        Thu Aug 19 10:35:39 1999
@@ -26,15 +26,15 @@
    {   UNKNOWN,  0,   0,   0 }
};

-static font_height = 1;
-static font_width = 1;
+static int font_height = 1;
+static int font_width = 1;

static bool input_redraw = FALSE;
static bool more_prompts = TRUE;
static bool discarding = FALSE;
static bool cursor = TRUE;

-static input_window = 0;
+static int input_window = 0;

static struct {
    zword y_pos;
diff -urNbB frotz-2.32/sound.c frotz-2.32a/sound.c
--- frotz-2.32/sound.c  Sat Jul 19 05:29:48 1997
+++ frotz-2.32a/sound.c Thu Aug 19 10:36:52 1999
@@ -16,8 +16,8 @@

static zword routine = 0;

-static next_sample = 0;
-static next_volume = 0;
+static int next_sample = 0;
+static int next_volume = 0;

static bool locked = FALSE;
static bool playing = FALSE;
diff -urNbB frotz-2.32/ux_init.c frotz-2.32a/ux_init.c
--- frotz-2.32/ux_init.c        Fri Oct  3 18:12:10 1997
+++ frotz-2.32a/ux_init.c       Thu Aug 19 10:13:29 1999
@@ -62,6 +62,7 @@
static int user_screen_height = -1;
static int user_random_seed = -1;
static int user_tandy_bit = 0;
+    char stripped_story_name[MAX_FILE_NAME];

static int curses_active = 0; /* true if os_init_screen has been run */
int current_text_style = 0;           /* Since I can't use attr_get, which
@@ -132,7 +133,6 @@
void os_process_arguments (int argc, char *argv[])
{
    int c, i;
-    char stripped_story_name[MAX_FILE_NAME];
    char *p = NULL;

    /* Parse the options */
diff -urNbB frotz-2.32/ux_pic.c frotz-2.32a/ux_pic.c
--- frotz-2.32/ux_pic.c Fri Oct  3 18:12:10 1997
+++ frotz-2.32a/ux_pic.c        Thu Aug 19 10:38:59 1999
@@ -5,6 +5,50 @@
 *
 */

+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+
+#define TRUE (1==1)
+#define FALSE !TRUE
+
+extern char stripped_story_name[];
+
+#define PIC_NUMBER 0
+#define PIC_WIDTH 2
+#define PIC_HEIGHT 4
+#define PIC_FLAGS 6
+#define PIC_DATA 8
+#define PIC_COLOUR 11
+
+int scaler = 1;
+
+static int load_picture_info (int picture);
+
+static struct {
+    char fileno;
+    char flags;
+    short unused1;
+    short images;
+    short link;
+    char entry_size;
+    char padding;
+    short checksum;
+    short unused2;
+    short version;
+} gheader;
+
+static short pic_width = 0;
+static short pic_height = 0;
+
+void debug(char *text)
+{
+       FILE *debugfile;
+       debugfile = fopen("debugfile", "a");
+       fprintf(debugfile, "%s\n", text);
+       fclose(debugfile);
+}
+
/*
 * os_draw_picture
 *
@@ -54,8 +96,41 @@

int os_picture_data (int picture, int *height, int *width)
{
+    int avail;

-    /* Not implemented */
-    return 0;
+    if (picture == 0) {
+
+        avail = FALSE;
+
+        /* This is the special case mentioned above. In practice, only
+           the release number is used; and even this is only used by
+           the DOS version of "Zork Zero". Infocom's Amiga interpreter
+           could not handle this feature, and the Amiga version of the
+           story file does not use it. */
+
+        pic_height = gheader.images;
+        pic_width = gheader.version;
+
+    } else avail = load_picture_info (picture);
+
+    *height = pic_height;
+    *width = pic_width;
+
+    return avail;

}/* os_picture_data */
+
+/*
+ * load_picture_info
+ *
+ * Helper function for os_picture_data. Load all information about
+ * the given picture from the graphics file and store it in global
+ * variables.
+ *
+ */
+
+static int load_picture_info (int picture)
+{
+    return FALSE;
+
+}/* load_picture_info */
--- frotz-2.32/ux_screen.c      Fri Oct  3 18:12:10 1997
+++ frotz-2.32a/ux_screen.c     Thu Aug 19 11:40:48 1999
@@ -76,7 +76,9 @@
    int saved_style;
#endif

+#if 0 /* units isn't referenced anywhere here.  This check kills Shogun */
    if (units != 1) os_fatal("Can't Happen (os_scroll_area)"); /* FIXME */
+#endif

    if (!((old_scroll_top == top) && (old_scroll_bottom == bottom))) {
        old_scroll_top = top; old_scroll_bottom = bottom;