home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / game / role / itf / history.txt < prev    next >
Text File  |  1994-10-18  |  56KB  |  1,450 lines

  1. The InfoTaskForce Infocom Interpreter Modification History.
  2. ===========================================================
  3. Copyright (c) 1992 InfoTaskForce
  4.  
  5.  
  6. REV_A - May 25, 1987.
  7. ---------------------
  8.  
  9. *    Original version of the Infocom Standard Series Interpreter. This 
  10.     was compiled on a 128K Apple Macintosh using Aztec C Version 
  11.     1.06F.
  12.  
  13.  
  14.  
  15. REV_B - June 1, 1987.
  16. ---------------------
  17.  
  18. *    The Interpreter was ported to Lightspeed C Version 2.01 on a 
  19.     128K Apple Macintosh, an IBM PC on Microsoft C Version 4 and a 
  20.     VAX 11/780 running UNIX Version 7. These ports revealed some 
  21.     non-portable constructs in the code.
  22.  
  23. *    In file.c    : fix for byte order (within word) problem.
  24.  
  25. *    In infocom.h    : added a few new definitions and extra 
  26.               comments.
  27.  
  28. *    In io.c        : fix for type mismatch (coersion added).
  29.  
  30. *    In jump.c    : fix for an attempt to use a negative number when 
  31.               stored as an unsigned.
  32.  
  33. *    In infocom.c    : add command line processing for cheat modes.
  34.  
  35. *    Added object.che: A replacement for object.c, allowing two 
  36.               "cheat" modes which can be invoked from the command
  37.               line.
  38.  
  39. *    In print.c    : fix for errors that occured when an "int" is not 16 
  40.               bits.
  41.  
  42. *    In page.c    : fix for a problem in the "fix_pc ()" function that 
  43.               occured when an int and short aren't the same size.
  44.  
  45. *    Added debug.c    : A replacement for interp.c with debugging 
  46.               code built in - produces an instruction trace.
  47.  
  48.  
  49. Machine        C Compiler        Operational    Porting details
  50.  
  51. 128K Apple 
  52. Macintosh    Aztec C Version 1.06F    18/05/87    
  53.  
  54. 128K Apple 
  55. Macintosh    Lightspeed C 2.01    29/05/87    Use "rb" & 
  56.                             "wb" in all 
  57.                             fopen()s
  58.  
  59. IBM PC/AT    Microsoft C 4        30/05/87    Link with 
  60.                             binmode.obj
  61. DEC VAX 11/780    UNIX V7 cc        01/06/87    
  62.  
  63.  
  64.  
  65. REV_C - June 2, 1987.
  66. ---------------------
  67.  
  68.  
  69. *** This is the incomplete version which was released on the Internet ***
  70. ***                  (not by InfoTaskForce)                           ***
  71.  
  72. *    Nine more cases of faulty coersion have been found. They showed 
  73.     up quite graphically on the port to an HP 9000 UNIX machine. 
  74.     "signed_word" coersions were added to the following three files: 
  75.     funcs.c, print.c and variable.c.
  76.  
  77.  
  78.  
  79. REV_D - June 16, 1987.
  80. ----------------------
  81.  
  82. *    Fix one remaining byte order within word problem in "restore ()".
  83.  
  84. *    Remove checking on the "fread ()" in "load_page ()" to remove a 
  85.     "Failed to Read Block from File" error when the last block wasn't 
  86.     a full 512 bytes long (they need not be).
  87.  
  88.  
  89.  
  90. REV_E - June 25, 1987.
  91. ----------------------
  92.  
  93. REV_E is the first major overhaul to the interpreter.
  94.  
  95. *    The source is now significantly lint free.
  96.  
  97. *    TERMCAP support has now been added [#define TERMCAP option].
  98.  
  99. *    Screen paging and word wrap has been added, along with a new 
  100.     command line option which disables screen paging (-p).
  101.  
  102. *    Random number generator seeding using time () added [#define 
  103.     TIMESEED option].
  104.  
  105. *    Attributes in the object list are listed as bits.
  106.  
  107. *    A debuging version can now be produced as an inbuilt options
  108.     [#define DEBUG option].
  109.  
  110. *    The coded requirement that 25k is always free in the system can 
  111.     now be removed [#define ALLOCALL option].
  112.  
  113. *    A new command line option was added to print the object/room list 
  114.     as a tree (-r).
  115.  
  116. *    interp.c has been re-written to improve efficiency [large 
  117.     switches have been replaced with arrays of pointers to funcions].
  118.  
  119. There are now 14 machines on the porting list:
  120.  
  121. Machine        C Compiler        Operational    Porting details
  122.  
  123. 128K Apple 
  124. Macintosh    Aztec C Version 1.06F    18/05/87    
  125.  
  126. 128K Apple 
  127. Macintosh    Lightspeed C 2.01    29/05/87    Use "rb" & 
  128.                             "wb" in all 
  129.                             fopen()s
  130.  
  131. IBM PC/AT    Microsoft C 4        30/05/87    Link with 
  132.                             binmode.obj
  133.  
  134. DEC VAX 11/780    UNIX V7 cc        01/06/87    
  135.  
  136. HP-9000    HP-UX    cc            02/06/87    
  137.  
  138. gould        cc            03/06/87    
  139.  
  140. Amiga        Aztec C            04/06/87    
  141.  
  142. Pyramid 9810    cc            04/06/87    
  143.  
  144. Pyramid 90x    cc            04/06/87    
  145.  
  146. Osiris        cc            05/06/87    
  147.  
  148. DEC PDP-11/?    UNIX V? cc        07/06/87    EXTENSIVE 
  149.                             mods to fix 
  150.                             problems with 
  151.                             signed chars.
  152.  
  153. VAX VMS        cc            16/06/87    Add #define 
  154.                             times ttmes to 
  155.                             fix multiply 
  156.                             defined symbol 
  157.                             problem. 
  158.                             [infocom.h]
  159.  
  160.  
  161. Version 1.00 - August 17, 1987.
  162. -------------------------------
  163.  
  164. The REV_C interpreter of June 2, 1987 was officially archived as 
  165. Version 1.00 on August 17, 1987.
  166.  
  167.  
  168.  
  169. Version 2.00 - April 4, 1988.
  170. -----------------------------
  171.  
  172. [Note: Version 2.00 of the interpreter was derived from the 
  173. REV_E version of the interpreter. The REV_E save/restore bug is 
  174. fixed with Version 2.00. However, the following modification list 
  175. shows the differences between Version 1.00 and Version 2.00, not 
  176. the differences between REV_E and Version 2.00]
  177.  
  178. *** The STANDARD Interpreter is finally complete ***
  179.  
  180. *    Merged file debug.c with interp.c (debug.c no longer exists - 
  181.     DEBUG can now be #defined).
  182.  
  183. *    Merged file object.che with object.c (object.che no longer exists 
  184.     - CHEAT can now be #defined).
  185.  
  186. *    Renamed function.c to funcs.c (filename was too big for some 
  187.     operating systems).
  188.  
  189. *    Renamed makefile to unix.mk and added unix support to the 
  190.     makefile.
  191.  
  192. *    Introduced term.c. This file contains the UNIX TERMCAP 
  193.     interface routines.
  194.  
  195. *    In file.c, the save and restore routines were completely 
  196.     rewritten. The old version saved only the save_blocks area of the 
  197.     data file, while the new version also saves the current values of 
  198.     the interpreter pc_page, pc_offset, stack pointer, 
  199.     stack_var_pointer and stack array. The size of the save file name 
  200.     was increased from 10 characters to 80 characters.
  201.  
  202. *    In infocom.c, the "main ()" routine was modified to support two 
  203.     new options - print object tree and page out (disable the 
  204.     [MORE] function). Some global variables have also been removed 
  205.     to other files.
  206.  
  207. *    In infocom.h, the macro "max_mem" was changed from 0xFFFF to 
  208.     0xFE00 (that is, to a multiple of the block size 0x0200). The 
  209.     macros "dmx_scrx" and "mx_scry" have been introduced - they 
  210.     are the default line width and default screen height respectively.
  211.  
  212. *    In init.c, the "init ()" routine was rewritten. Many of the global 
  213.     variables were not needed. The interpreter stack is now a 
  214.     predefined global array and is not obtained from the block of 
  215.     memory obtained by "allocate ()". The new routines "init_io ()" 
  216.     and "init_status ()" are also called from here.
  217.  
  218. *    In input.c, the "input ()" routine was modified to reset the line 
  219.     count for every new line of input.
  220.  
  221. *    The routines in interp.c were completely rewritten - they now use 
  222.     arrays of function pointers instead of large case statements to 
  223.     execute the various opcode functions.
  224.  
  225. *    In io.c, the "init_io ()" routine was added to initialise any I/O 
  226.     variables (specifically the UNIX TERMCAP variables). The 
  227.     "cr_print_buffer ()" routine was added, allowing the "print_buffer 
  228.     ()" routine to be greatly simplified (it was actually quite a
  229.     mess!).
  230.  
  231. *    In io.c, the "out_char ()" routine has been changed to include 
  232.     the "page_out" option and to use the "mx_scry" variable
  233.     (current number of screen lines).
  234.  
  235. *    In io.c, the "allocate ()" routine now returns the number of 
  236.     bytes allocated. It also uses increments of 256 bytes instead of 1 
  237.     Kbytes and preserves 24 Kbytes for system use instead of 25 
  238.     Kbytes. This memory is no longer preserved if ALLOCALL is 
  239.     defined.
  240.  
  241. *    In io.c, the "seed_random ()" routine now uses the C library 
  242.     "time ()" function to seed the random number generator if 
  243.     TIMESEED is defined.
  244.  
  245. *    In options.c, the "out_char ()" routine is now used to print new 
  246.     line characters rather than using printf. "words_per_line" is now 
  247.     calculated from the current line length "mx_scrx" rather than 
  248.     #defined. The total number of entries in the object/room list is 
  249.     now correctly calculated using the start of the first object's 
  250.     property list (instead of blindly assuming that there are always 
  251.     256 objects).
  252.  
  253. *    In options.c, the "bit_byte ()" routine was added to show an 
  254.     object's properties as bits rather than as a hexadecimal number. 
  255.     New routines were added ("show_tree ()" and "obtree ()") to 
  256.     display the data file's object/room list in a tree format.
  257.  
  258. *    The global variables "page_strt" and "strt_page_table" were moved 
  259.     from init.c to page.c. The page table initialisation code was a