home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD1.bin
/
new
/
game
/
role
/
itf
/
history.txt
< prev
next >
Wrap
Text File
|
1994-10-18
|
56KB
|
1,450 lines
The InfoTaskForce Infocom Interpreter Modification History.
===========================================================
Copyright (c) 1992 InfoTaskForce
REV_A - May 25, 1987.
---------------------
* Original version of the Infocom Standard Series Interpreter. This
was compiled on a 128K Apple Macintosh using Aztec C Version
1.06F.
REV_B - June 1, 1987.
---------------------
* The Interpreter was ported to Lightspeed C Version 2.01 on a
128K Apple Macintosh, an IBM PC on Microsoft C Version 4 and a
VAX 11/780 running UNIX Version 7. These ports revealed some
non-portable constructs in the code.
* In file.c : fix for byte order (within word) problem.
* In infocom.h : added a few new definitions and extra
comments.
* In io.c : fix for type mismatch (coersion added).
* In jump.c : fix for an attempt to use a negative number when
stored as an unsigned.
* In infocom.c : add command line processing for cheat modes.
* Added object.che: A replacement for object.c, allowing two
"cheat" modes which can be invoked from the command
line.
* In print.c : fix for errors that occured when an "int" is not 16
bits.
* In page.c : fix for a problem in the "fix_pc ()" function that
occured when an int and short aren't the same size.
* Added debug.c : A replacement for interp.c with debugging
code built in - produces an instruction trace.
Machine C Compiler Operational Porting details
128K Apple
Macintosh Aztec C Version 1.06F 18/05/87
128K Apple
Macintosh Lightspeed C 2.01 29/05/87 Use "rb" &
"wb" in all
fopen()s
IBM PC/AT Microsoft C 4 30/05/87 Link with
binmode.obj
DEC VAX 11/780 UNIX V7 cc 01/06/87
REV_C - June 2, 1987.
---------------------
*** This is the incomplete version which was released on the Internet ***
*** (not by InfoTaskForce) ***
* Nine more cases of faulty coersion have been found. They showed
up quite graphically on the port to an HP 9000 UNIX machine.
"signed_word" coersions were added to the following three files:
funcs.c, print.c and variable.c.
REV_D - June 16, 1987.
----------------------
* Fix one remaining byte order within word problem in "restore ()".
* Remove checking on the "fread ()" in "load_page ()" to remove a
"Failed to Read Block from File" error when the last block wasn't
a full 512 bytes long (they need not be).
REV_E - June 25, 1987.
----------------------
REV_E is the first major overhaul to the interpreter.
* The source is now significantly lint free.
* TERMCAP support has now been added [#define TERMCAP option].
* Screen paging and word wrap has been added, along with a new
command line option which disables screen paging (-p).
* Random number generator seeding using time () added [#define
TIMESEED option].
* Attributes in the object list are listed as bits.
* A debuging version can now be produced as an inbuilt options
[#define DEBUG option].
* The coded requirement that 25k is always free in the system can
now be removed [#define ALLOCALL option].
* A new command line option was added to print the object/room list
as a tree (-r).
* interp.c has been re-written to improve efficiency [large
switches have been replaced with arrays of pointers to funcions].
There are now 14 machines on the porting list:
Machine C Compiler Operational Porting details
128K Apple
Macintosh Aztec C Version 1.06F 18/05/87
128K Apple
Macintosh Lightspeed C 2.01 29/05/87 Use "rb" &
"wb" in all
fopen()s
IBM PC/AT Microsoft C 4 30/05/87 Link with
binmode.obj
DEC VAX 11/780 UNIX V7 cc 01/06/87
HP-9000 HP-UX cc 02/06/87
gould cc 03/06/87
Amiga Aztec C 04/06/87
Pyramid 9810 cc 04/06/87
Pyramid 90x cc 04/06/87
Osiris cc 05/06/87
DEC PDP-11/? UNIX V? cc 07/06/87 EXTENSIVE
mods to fix
problems with
signed chars.
VAX VMS cc 16/06/87 Add #define
times ttmes to
fix multiply
defined symbol
problem.
[infocom.h]
Version 1.00 - August 17, 1987.
-------------------------------
The REV_C interpreter of June 2, 1987 was officially archived as
Version 1.00 on August 17, 1987.
Version 2.00 - April 4, 1988.
-----------------------------
[Note: Version 2.00 of the interpreter was derived from the
REV_E version of the interpreter. The REV_E save/restore bug is
fixed with Version 2.00. However, the following modification list
shows the differences between Version 1.00 and Version 2.00, not
the differences between REV_E and Version 2.00]
*** The STANDARD Interpreter is finally complete ***
* Merged file debug.c with interp.c (debug.c no longer exists -
DEBUG can now be #defined).
* Merged file object.che with object.c (object.che no longer exists
- CHEAT can now be #defined).
* Renamed function.c to funcs.c (filename was too big for some
operating systems).
* Renamed makefile to unix.mk and added unix support to the
makefile.
* Introduced term.c. This file contains the UNIX TERMCAP
interface routines.
* In file.c, the save and restore routines were completely
rewritten. The old version saved only the save_blocks area of the
data file, while the new version also saves the current values of
the interpreter pc_page, pc_offset, stack pointer,
stack_var_pointer and stack array. The size of the save file name
was increased from 10 characters to 80 characters.
* In infocom.c, the "main ()" routine was modified to support two
new options - print object tree and page out (disable the
[MORE] function). Some global variables have also been removed
to other files.
* In infocom.h, the macro "max_mem" was changed from 0xFFFF to
0xFE00 (that is, to a multiple of the block size 0x0200). The
macros "dmx_scrx" and "mx_scry" have been introduced - they
are the default line width and default screen height respectively.
* In init.c, the "init ()" routine was rewritten. Many of the global
variables were not needed. The interpreter stack is now a
predefined global array and is not obtained from the block of
memory obtained by "allocate ()". The new routines "init_io ()"
and "init_status ()" are also called from here.
* In input.c, the "input ()" routine was modified to reset the line
count for every new line of input.
* The routines in interp.c were completely rewritten - they now use
arrays of function pointers instead of large case statements to
execute the various opcode functions.
* In io.c, the "init_io ()" routine was added to initialise any I/O
variables (specifically the UNIX TERMCAP variables). The
"cr_print_buffer ()" routine was added, allowing the "print_buffer
()" routine to be greatly simplified (it was actually quite a
mess!).
* In io.c, the "out_char ()" routine has been changed to include
the "page_out" option and to use the "mx_scry" variable
(current number of screen lines).
* In io.c, the "allocate ()" routine now returns the number of
bytes allocated. It also uses increments of 256 bytes instead of 1
Kbytes and preserves 24 Kbytes for system use instead of 25
Kbytes. This memory is no longer preserved if ALLOCALL is
defined.
* In io.c, the "seed_random ()" routine now uses the C library
"time ()" function to seed the random number generator if
TIMESEED is defined.
* In options.c, the "out_char ()" routine is now used to print new
line characters rather than using printf. "words_per_line" is now
calculated from the current line length "mx_scrx" rather than
#defined. The total number of entries in the object/room list is
now correctly calculated using the start of the first object's
property list (instead of blindly assuming that there are always
256 objects).
* In options.c, the "bit_byte ()" routine was added to show an
object's properties as bits rather than as a hexadecimal number.
New routines were added ("show_tree ()" and "obtree ()") to
display the data file's object/room list in a tree format.
* The global variables "page_strt" and "strt_page_table" were moved
from init.c to page.c. The page table initialisation code was a