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 ;
  
