Index: file.c
*** itf.org/file.c      Mon May  3 20:12:47 1993
--- itf.apple/file.c    Mon May  3 20:13:50 1993
***************
*** 186,192 ****
       }
       else
       {
!               if ( (int)fread ((char *)ptr,BLOCK_SIZE,(int)num_blocks,game_file) < 0 )
               {
                               display ( "Failed to Read required Blocks\n" ) ;
                               quit () ;
--- 186,192 ----
       }
       else
       {
!               if ( (int)fread ((char *)ptr,BLOCK_SIZE,(int)num_blocks,game_file) < num_blocks - 1 )
               {
                               display ( "Failed to Read required Blocks\n" ) ;
                               quit () ;
***************
*** 521,526 ****
--- 521,527 ----
       extern boolean  script_on ;
       extern byte_ptr script_status_ptr ;

+       script_status_ptr = (byte_ptr) &(data_head.script_status);
       if ( data_head.z_code_version <= VERSION_3 )
       {
               if (( script_on ) && (( *script_status_ptr & SCRIPT_MODE_ON ) == 0 ))
Index: infocom.h
*** itf.org/infocom.h   Mon May  3 20:12:50 1993
--- itf.apple/infocom.h Mon May  3 20:14:12 1993
***************
*** 16,22 ****
 **    "May the Grues be with you !"
 **
 */
!
 #ifndef       __INFOCOM__

 #define               __INFOCOM__
--- 16,23 ----
 **    "May the Grues be with you !"
 **
 */
! #define THINKC
! #undef LSC
 #ifndef       __INFOCOM__

 #define               __INFOCOM__
***************
*** 550,556 ****
--- 551,561 ----
 Void                  restore_game () ;
 Void                  ret_false () ;
 Void                  ret_true () ;
+ # ifdef THINKC
+ Void                  ret_value (word) ;
+ # else
 Void                  ret_value () ;
+ # endif
 Void                  rts () ;
 Void                  save_byte_array () ;
 Void                  save_cursor_position () ;
Index: machine.h
*** itf.org/machine.h   Mon May  3 20:12:52 1993
--- itf.apple/machine.h Mon May  3 20:13:55 1993
***************
*** 320,326 ****
 #define               WRITE_STRING    "wb"
 #define               APPEND_STRING   "a"
 #define               Void                    int
! #define               MALLOC(s)               malloc(s)
 #define               FREE(p)                 free((void *)p)
 #define               main                    _main
 #define               TIME_FUNCTION   time((time_t *)0)
--- 320,326 ----
 #define               WRITE_STRING    "wb"
 #define               APPEND_STRING   "a"
 #define               Void                    int
! #define               MALLOC(s)               xmalloc((size_t)(s))
 #define               FREE(p)                 free((void *)p)
 #define               main                    _main
 #define               TIME_FUNCTION   time((time_t *)0)
***************
*** 341,347 ****
 #define               ERASE_WINDOW    thinkc_erase_window
 #define               SAVE_CURSOR             default_save_cursor
 #define               RESTORE_CURSOR  default_restore_cursor
!
 #endif        /* THINKC */

 /*
--- 341,348 ----
 #define               ERASE_WINDOW    thinkc_erase_window
 #define               SAVE_CURSOR             default_save_cursor
 #define               RESTORE_CURSOR  default_restore_cursor
! #define               RCFILE                  "infocom.rc"
! void *xmalloc(size_t); /* left this in as a debugging hook for malloc */
 #endif        /* THINKC */

 /*
Index: makefile
*** itf.org/makefile    Mon May  3 20:12:52 1993
--- itf.apple/makefile  Mon May  3 20:13:55 1993
***************
*** 4,9 ****
--- 4,11 ----
 #     (C)opyright 1987-1992 InfoTaskforce.
 #

+ SHELL=/bin/sh
+ LIBS=
 OBJECTS =     enhanced.o file.o fns.o globals.o infocom.o init.o input.o\
                       interp.o io.o jump.o message.o object.o options.o\
                       page.o plus_fns.o print.o property.o status.o\
***************
*** 174,180 ****
       make CFLAGS='$(OPTFLAG) -DSYS_V -DTERMINFO' LDFLAGS='-lcurses' unix

 unix: $(OBJECTS)
!       $(CC) $(OPTFLAG) -o infocom $(OBJECTS) $(LDFLAGS)

 $(OBJECTS): infocom.h machine.h makefile

--- 176,182 ----
       make CFLAGS='$(OPTFLAG) -DSYS_V -DTERMINFO' LDFLAGS='-lcurses' unix

 unix: $(OBJECTS)
!       $(CC) $(OPTFLAG) -o infocom $(OBJECTS) $(LDFLAGS) $(LIBS)

 $(OBJECTS): infocom.h machine.h makefile

Index: print.c
*** itf.org/print.c     Mon May  3 20:12:54 1993
--- itf.apple/print.c   Mon May  3 20:13:57 1993
***************
*** 140,146 ****
--- 140,151 ----
       word                                    address ;

       obj = STD_OBJ_ADDR ( obj_num ) ;
+ # ifndef THINKC
       address = ((obj -> prop_ptr[0]) << 8) + (obj -> prop_ptr[1]) + 1 ;
+ # else /* THINKC */
+       /* This corrects an alignment problem of thinkc */
+       address = (((word)((byte *)obj)[7]) << 8) + ((byte *)obj)[8] + 1;
+ # endif /* THINKC */
       print1 ( address ) ;
 }

Index: property.c
*** itf.org/property.c  Mon May  3 20:12:54 1993
--- itf.apple/property.c        Mon May  3 20:13:57 1993
***************
*** 14,20 ****
--- 14,25 ----

       register property       p ;

+ # ifndef THINKC
       p = base_ptr + ((word)(obj -> prop_ptr[0]) << 8) + (obj -> prop_ptr[1]) ;
+ # else /* THINKC */
+       /* This corrects an alignment problem of thinkc */
+       p = base_ptr + (((word)((byte *)obj)[7]) << 8) + ((byte *)obj)[8];
+ # endif /* THINKC */
       return ( p + (*p << 1) + 1 ) ;
 }

Index: support.c
*** itf.org/support.c   Mon May  3 20:12:55 1993
--- itf.apple/support.c Mon May  3 20:13:57 1993
***************
*** 87,94 ****
--- 87,98 ----
 }

 Void
+ # ifdef THINKC
+ ret_value (word result )
+ # else /* !THINKC */
 ret_value ( result )
 word  result ;
+ # endif /* !THINKC */
 {
       extern word             pc_offset ;