Difference between revisions of "Run Time System Changes"
Line 1: | Line 1: | ||
Run time system changes | Run time system changes | ||
− | In reverse chronological | + | In reverse chronological orde.<br /> |
+ | | ||
+ | |||
+ | ==<br /> Ver 1.001.097 - 8/23/93 == | ||
− | + | '''Chris Smith''' | |
− | + | fileCopy was added as a new sub-function to the kernel FileIO function. Two arguments are | |
− | + | required: source-file name and destination-file name. A zero return indicates success; a | |
− | + | non-zero return indicates failure. Possible DOS error return codes: | |
<blockquote> | <blockquote> | ||
Line 25: | Line 28: | ||
|28||device is full | |28||device is full | ||
|} | |} | ||
− | </blockquote> | + | </blockquote.<br /> |
+ | | ||
+ | |||
+ | ==<br /> Ver 1.001.095 - 5/25/93 == | ||
− | + | '''Chris Smith''' | |
− | + | The command line argument -? (or any invalid argument) when passed to the non-debug | |
− | + | interpreter (SIERRA.EXE) will display the internal version stamp number associated with a | |
− | + | game. Additionally, an interpreter-game version mismatch or failure to version-stamp a | |
− | + | game will result in immediate (rather than delayed) termination of the interpreter.<br /> | |
+ | | ||
==<br /> Ver 1.001.094 - 5/25/93 == | ==<br /> Ver 1.001.094 - 5/25/93 == | ||
− | Martin Peters | + | '''Martin Peters''' |
− | Changes where made to allow transparent views. Color 254 is now used to represent that the color in the v map should be remaped via the remapBuffer which is set by a kernel call. The remapBuffer is loaded with either a range modification (all color in range x to y are inc/dec by z) or a percent lumination (all colors remaped to best matched of x persent of color.) if no remaping is specified 254 is treated as skip. A depth of transparency was added and works on a priority depth. | + | Changes where made to allow transparent views. Color 254 is now used to represent that |
+ | |||
+ | the color in the v map should be remaped via the remapBuffer which is set by a kernel | ||
+ | |||
+ | call. The remapBuffer is loaded with either a range modification (all color in range x to | ||
+ | |||
+ | y are inc/dec by z) or a percent lumination (all colors remaped to best matched of x | ||
+ | |||
+ | persent of color.) if no remaping is specified 254 is treated as skip. A depth of | ||
+ | |||
+ | transparency was added and works on a priority depth. | ||
Example:<br /> | Example:<br /> | ||
− | a 254 color view at priority 8 is placed o==<br /> Ver a picture with both pri of 7 and 3. if the remap has no depth specified then the remap view remaps all of the picture below but, if a depth of 2 is specified then the view will modify the priority 7 or even pri 6 color in the vmap but not colors a 3 or even 5 will be remaped. this allow a depth of field translation. | + | a 254 color view at priority 8 is placed o==<br /> Ver a picture with both pri of 7 and 3. |
+ | |||
+ | if the remap has no depth specified then the remap view remaps all of the picture below | ||
+ | |||
+ | but, if a depth of 2 is specified then the view will modify the priority 7 or even pri 6 | ||
+ | |||
+ | color in the vmap but not colors a 3 or even 5 will be remaped. this allow a depth of | ||
+ | |||
+ | field translation. | ||
the call value is kernel 123 and is call with the following parms<br /> | the call value is kernel 123 and is call with the following parms<br /> | ||
Line 56: | Line 81: | ||
|} | |} | ||
− | if type = 0<br /> | + | if type = 0<br /.<br /> |
follow by<br /> | follow by<br /> | ||
<blockquote>percent illumination<br /> | <blockquote>percent illumination<br /> | ||
[depth of field] | [depth of field] | ||
</blockquote> | </blockquote> | ||
− | if type = 1<br /> | + | if type = 1<br /.<br /> |
follow by | follow by | ||
<blockquote>start range<br /> | <blockquote>start range<br /> | ||
Line 68: | Line 93: | ||
depth of field | depth of field | ||
</blockquote> | </blockquote> | ||
− | if type = 2<br /> | + | if type = 2<br /.<br /> |
− | no other | + | no other var.<br /> |
+ | | ||
− | - | + | ==<br /> Ver 1.001.092 - 4/27/93 == |
− | + | '''Chris Smith''' | |
+ | |||
+ | SCI.EXE is now the only version of the interpreter with debug. It can be used to run both | ||
+ | |||
+ | file-based games and volume-based games. (Actually, there is a temporary version of | ||
+ | |||
+ | SCI.EXE called SCITESTR.EXE which is used to run the tester... it will soon/eventually be | ||
+ | |||
+ | deleted when the SCI system classes can once again manage menu bars.) | ||
+ | |||
+ | SIERRA.EXE is now the only version of the interpreter without debug. It can be used to | ||
+ | |||
+ | run both file-based games and volume-based games. | ||
− | + | The dongle-specific version of the interpreter (BETA.EXE) is defunct. We now use | |
− | + | STAMPVER.EXE to encript a trackable version stamp into each prerelease version of a game | |
− | + | before it is sent out to beta testers, reviewers, etc. SIERRA.EXE will timeout with an | |
− | + | error if STAMP==<br /> Ver has not been run against it and the corresponding game volume | |
− | + | resource.<br /> | |
+ | | ||
==<br /> Ver 1.001.091 - 4/13/93 == | ==<br /> Ver 1.001.091 - 4/13/93 == | ||
− | Ed Critchlow | + | '''Ed Critchlow''' |
+ | |||
+ | Added support for the ARIA sound board to use EMS memory. The DoLoad function in both | ||
− | + | fileload.c and volload.c was modified to use EMS memory if sound patch 10 is being used | |
− | + | (the ARIA sound patch). Also fixed a bug in memmgr.s function GetHandle which trashed bp. | |
+ | |||
+ | Sound.c was modified in the InitSound function to check if the ARIA dri==<br /> Ver is | ||
+ | |||
+ | being used and if it is call DoLoad. Sci.c was changed slightly to make sure InitSound | ||
+ | |||
+ | made a call to ARM before ARM got the rest of memory.<br /> | ||
+ | | ||
==<br /> Ver 1.001.090 - 4/13/93 == | ==<br /> Ver 1.001.090 - 4/13/93 == | ||
− | Chris Smith | + | '''Chris Smith''' |
+ | |||
+ | ARM audio buffering is always used if ARM is available. The 'audioSize=nX' convention | ||
+ | |||
+ | described in version 1.001.086 reverts to 'audioSize=nK' where n is the number of K-bytes | ||
+ | |||
+ | of conventional memory to dedicate to audio buffering only if ARM is not available | ||
+ | |||
+ | (default is 4K). | ||
+ | |||
+ | An immediate 'done' cue is generated if there is a digital sample for a particular sound | ||
+ | |||
+ | number but no midi equivalent and the user is not using a DAC driver. | ||
− | + | If a digital sample is specified for the Init of a Sound Object and the user is not using | |
− | + | a DAC dri==<br /> Ver and subsequently a midi resource is specified for the Play of that | |
− | + | same Sound Object with no intervening Init... the interpreter will effect a (re)Init of | |
− | + | the Sound Object just before executing the Play.<br /> | |
+ | | ||
==<br /> Ver 1.001.89 == | ==<br /> Ver 1.001.89 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | More pre-SCI32 cleansing. Removed all externs, externdefs and protos (except for local | ||
− | + | functions) from source files and put them in header files. Moved global variables from | |
+ | |||
+ | SCI.C to their appropriate source files, and their declarations from SCI.H/.I to the | ||
+ | |||
+ | appropriate header files. Moved declarations from SAVEVARS.H/.I to their appropriate | ||
+ | |||
+ | header files, so a source file only needs to include the headers that it's interested in, | ||
+ | |||
+ | instead of all the headers that the old SAVEVARS.H/.I depended on. | ||
Split MOUSE.S into MOUSE.C and MOUSEASM.S. Split INTRPT.S into INTRPT.C | Split MOUSE.S into MOUSE.C and MOUSEASM.S. Split INTRPT.S into INTRPT.C | ||
− | Changed most variables that began with uppercase to lowercase. Put typedefs with struct | + | Changed most variables that began with uppercase to lowercase. Put typedefs with struct |
− | + | definitions. | |
− | Removed | + | Removed all warnings generated by Borland C++ and included a special symbol that BC++ |
− | + | needs. The interpreter is now completely BC++ compatible. | |
− | + | Removed unused global and local variables and functions (saving hunk and a little heap). | |
− | + | Put Send() inline instead of calling a function. | |
− | + | Removed unused parameters, such as the palette parameter to DrawPic, the mode parameter to | |
+ | |||
+ | InsertPalette and RSetDanPalette, the realYDim parameter to ScaleDrawCel. | ||
+ | |||
+ | Fixed bug where GetCelWide, GetCelHigh, GetCelXOfs, GetCelYOfs and SetNewDim didn't | ||
+ | |||
+ | protect DI. | ||
+ | |||
+ | 118 files changed.<br /> | ||
+ | | ||
==<br /> Ver 1.001.087 - 3/29/93 == | ==<br /> Ver 1.001.087 - 3/29/93 == | ||
− | Chris Smith | + | '''Chris Smith''' |
− | Audio resources are now built into two distinct Volumes via MAKEMAPS.EXE: RESOURCE.SFX for | + | Audio resources are now built into two distinct Volumes via MAKEMAPS.EXE: RESOURCE.SFX for |
− | Note: There is a new MAKEMAPS.EXE (dated 3/29/93 or later) and a new AUDDCOMP.EXE (dated 3/29/93 or later) corresponding to this version of the interpreter. | + | .AUD and .WAV files (typically sound effects) and RESOURCE.AUD for @*.* (typically |
− | + | ||
− | + | speech), #*.* (SOL syncs) and _*.* (BSTAR rave syncs). RESOURCE.SFX should always be | |
+ | |||
+ | copied at install time to the current directory just as RESOURCE.000. RESOURCE.AUD may | ||
+ | |||
+ | exist in any directory on any device so long as an 'audio=' line exists in RESOURCE.CFG to | ||
+ | |||
+ | locate it. | ||
+ | |||
+ | Note: There is a new MAKEMAPS.EXE (dated 3/29/93 or later) and a new AUDDCOMP.EXE (dated | ||
+ | |||
+ | 3/29/93 or later) corresponding to this version of the interpreter. | ||
+ | | ||
==<br /> Ver 1.001.086 - 3/23/93 == | ==<br /> Ver 1.001.086 - 3/23/93 == | ||
− | Chris Smith | + | '''Chris Smith''' |
+ | |||
+ | Added support for buffering audio samples to ARM memory. Currently, audio ARM allocation | ||
+ | |||
+ | is fixed at 32K with an additional 6K of conventional memory allocated for audio DMA and | ||
+ | |||
+ | IO transfers. ARM audio buffering is activated by including the where-file or cfg-file | ||
+ | |||
+ | directive 'audioSize=nX' where n is the number of K-bytes of conventional memory to | ||
+ | |||
+ | allocate in the event of ARM allocation failure (e.g. audioSize=12X). | ||
+ | |||
+ | Note: There are new audio drivers (dated 3/23/93 or later) corresponding to this version | ||
+ | |||
+ | of the interpreter. | ||
+ | |||
− | + | '''Mark Wilden''' | |
− | + | Added support for using ARM memory separately from resource management. Added functions | |
+ | AltResMemAlloc() to get memory, ARMRead() and ARMWrite() to access it, ARMFree() to | ||
− | + | release it, and ARMCritical() as a semaphore to determine if we're in ARM code. ARMRead() | |
− | + | and ARMWrite() allow moving memory to/from an offset in the ARM allocation. | |
− | Added Get32KEMS() and Free32KEMS() to allow access to 32K of EMS memory that will remain | + | Added Get32KEMS() and Free32KEMS() to allow access to 32K of EMS memory that will remain |
− | + | at the top of the page frame and so can be accessed like normal DOS memory.<br /> | |
+ | | ||
==<br /> Ver 1.001.082 - 3/15/93 == | ==<br /> Ver 1.001.082 - 3/15/93 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | More pre-SCI32 cleansing. Broken PMACHINE.S up into PMACHINE.C and PMACHASM.S. Broke | ||
− | + | START.S up into START.C and STARTASM.S. Moved dongle code to DONGLE.S. Did more cleanup | |
− | + | as below, including culling and sorting #includes, removing unused variables and | |
+ | |||
+ | functions, and moving externs into the correct header files. Not released.<br /> | ||
+ | | ||
==<br /> Ver 1.001.081 - 3/11/93 == | ==<br /> Ver 1.001.081 - 3/11/93 == | ||
− | Chris Smith | + | '''Chris Smith''' |
− | The kernel function 'KDbugStr' will scroll text to a second monitor. It takes a single | + | The kernel function 'KDbugStr' will scroll text to a second monitor. It takes a single |
− | + | argument: a near sring to display or 1 to select the lower text page or 2 to select the | |
− | + | second text page or 0 to clear the current text page. | |
− | The | + | The 'xlate=' directive can be used to display the Enlish equivalent of foreign text (or |
− | - | + | visa-versa) to a second monitor. |
+ | |||
+ | If a resource can not be found or is incorrectly flagged and the user elects to abort the | ||
+ | |||
+ | game, debug (if present) will be activated before quitting. | ||
+ | |||
+ | The precedence of alternate resources relative to patches is dependent upon the location | ||
+ | |||
+ | of RESOURCE.MSG in the list of patchDir specifications. Only patches found in 'earlier' or | ||
+ | |||
+ | the same directory as the equivalent resource in RESOURCE.MSG will be used.<br /> | ||
+ | | ||
==<br /> Ver 1.001.080 - 3/10/93 == | ==<br /> Ver 1.001.080 - 3/10/93 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | The main thrust of these changes was to move some functions from assembly files to C files | ||
+ | |||
+ | for ease in porting, especially to SCI32. In so doing, I did some cleaning up, fixed a | ||
+ | |||
+ | bug or two and added some minor features. | ||
+ | |||
+ | Moved many externdefs out of .S file and into .I files where they belong. Removed | ||
+ | |||
+ | LINT_ARGS from many header files, as well as unnecessary 'extern's on function | ||
+ | |||
+ | declarations. Changed some function definitions to use ANSI argument lists instead of | ||
+ | |||
+ | K&R. Sorted many lists of include files so that duplications can be seen and to avoid | ||
+ | |||
+ | order dependencies. Header files should include all the header files they need, and no | ||
+ | |||
+ | more. Moved some typedefs from TYPES.H to their appropriate header files. For instance, | ||
+ | |||
+ | Obj is now typedefed in OBJECT.H. Passing code through BC++ let me see some local | ||
+ | |||
+ | variables that weren't being accessed, which were removed. Added some casts to remove | ||
+ | |||
+ | conflicts between signed and unsigned character comparisons, and comparing signed values | ||
+ | |||
+ | to -1. | ||
− | + | Profiling code was made conditional on PROFILER, which reduces the size of the code when | |
− | + | profiling is not used (as now). | |
− | + | If the user misspells the name of an object he is inspecting or breaking on, he can edit | |
− | + | the name, instead of using memory location 0. | |
The send stack now shows the address of a disposed object instead of ???. | The send stack now shows the address of a disposed object instead of ???. | ||
− | Moved some debugging functions from OBJECT.S to DEBUG.C. Moved other functions from OBJECT.S to OBJECT.C. OBJECT.S was renamed OBJASM.S. | + | Moved some debugging functions from OBJECT.S to DEBUG.C. Moved other functions from |
+ | |||
+ | OBJECT.S to OBJECT.C. OBJECT.S was renamed OBJASM.S. | ||
+ | |||
+ | GetProperty and SetProperty now abort the program if an invalid property is accessed. | ||
+ | |||
+ | This change immediately made Animate() abort because it was still accessing the | ||
− | + | nonexistent 'palette' property of View. Taking this access out will speed up Animate(). | |
− | + | If you need to determine if a property is valid, GetPropAddr will return 0 if the property | |
− | + | is invalid. E_INVALID_PROPERTY was added to the error messages. MacGetPropAddr was | |
+ | |||
+ | renamed GetPropAddrMacro so it wouldn't sound like a Macintosh function. | ||
+ | |||
+ | FreeHeap() wasn't saving DI, which sometimes crashed the program after resources were | ||
+ | |||
+ | viewed.<br /> | ||
+ | | ||
==<br /> Ver 1.001.077 == | ==<br /> Ver 1.001.077 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
Moved PanicMsgOutput from DOS.C to ERRMSG.C. Cleaned out some LINT_ARGS from ERRMSG.C. | Moved PanicMsgOutput from DOS.C to ERRMSG.C. Cleaned out some LINT_ARGS from ERRMSG.C. | ||
− | Chris Smith | + | '''Chris Smith''' |
+ | |||
+ | The functionality of RESOURCE.MSG/MESSAGE.MAP has been expanded to permit resources of any | ||
+ | |||
+ | type. The MAKEVOLS -m option can be used to build these special files via the MESSAGE.TXT | ||
+ | |||
+ | file (which functions identically to the RESOURCE.TXT file). The expanded purpose of | ||
− | + | RESOURCE.MSG is to serve as a collection of language-dependent resources. Consequently, | |
− | + | RESOURCE.000 should contain only language-independent resources. The sequence for | |
− | ( | + | locating resources is (1) patch files; (2) RESOURCE.MSG; (3) RESOURCE.000; (4) load error. |
− | + | Audio and sync resources can be queued up to 10 sequences deep via the new kernel calls | |
+ | |||
+ | (DoSync QueueSync) and (DoAudio Queue). These two calls can be made in any order or | ||
+ | |||
+ | interspersed, but there must be one call to (DoSync Start) for the first sync and one call | ||
+ | |||
+ | to (DoAudio Play) for the first audio. The (DoAudio Play) call (and optional (DoAudio | ||
+ | |||
+ | WPlay) call must follow all related (DoAudio Queue) calls. A call to (DoAudio Stop) will | ||
+ | |||
+ | flush all audios queued and (DoSync StopSync) will flush all syncs queued. | ||
+ | |||
+ | (DoSound Stop) called directly or indirectly will only stop a dac sample if the sound | ||
+ | |||
+ | number matches the sound number of the sample playing. (DoAudio Stop) can be called to | ||
+ | |||
+ | stop any dac sample playing.<br /> | ||
+ | | ||
==<br /> Ver 1.001.076 - 2/26/93 == | ==<br /> Ver 1.001.076 - 2/26/93 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | Added rename() function and (FileIO fileRename) kernel call.<br /> | ||
+ | | ||
+ | |||
+ | ==<br /> Ver 1.001.073 - 1/15/93 == | ||
+ | |||
+ | '''Chris Smith''' | ||
− | + | .WAV resources (Microsoft WAVE audio files) are now recognized by the interpreter; .CDA | |
− | + | resources (CD 'Redbook' audio files) are no longer recognized as such. .WAV resources can | |
− | + | co-exist in a game with .AUD and .SND resources. The order of selection for a particular | |
− | + | 'sound' number is x.AUD then x.WAV and lastly x.SND. | |
− | + | Base-36 audio and sync files can now be included as patches. The designations 'audio=' | |
− | + | and 'sync=' can be used in RESOURCE.CFG to specify all of the paths to scan for audio and | |
− | + | sync resources.<br /> | |
+ | | ||
==<br /> Ver 1.001.072 - 1/15/93 == | ==<br /> Ver 1.001.072 - 1/15/93 == | ||
− | Chris Smith | + | '''Chris Smith''' |
− | Bug fix for the -w command-line option which existed since it was first coded but was only | + | Bug fix for the -w command-line option which existed since it was first coded but was only |
− | + | unmasked by changes made in ==<br /> Ver 1.001.071.<br /> | |
+ | | ||
==<br /> Ver 1.001.071 - 1/15/93 == | ==<br /> Ver 1.001.071 - 1/15/93 == | ||
− | Chris Smith | + | '''Chris Smith''' |
− | New kernel call 'SetQuitStr' (= 135) takes one near string argument (typically a message) | + | New kernel call 'SetQuitStr' (= 135) takes one near string argument (typically a message) |
− | + | which it will display at the DOS screen when the interpreter exits. If multiple calls to | |
− | + | SetQuitStr are made, only the last will be honored. The maximum number of characters | |
− | ---- | + | displayed will be 255. |
+ | |||
+ | An unrecognized command-line argument (such as -?) will result in the version number of | ||
+ | |||
+ | the interpreter being displayed (and, if it is a 'debug' interpreter, a list of valid | ||
+ | |||
+ | command-line arguments). The interpreter will then exit. This feature can be used | ||
+ | |||
+ | without any other files being present. | ||
+ | |||
+ | The CD-ROM drive is located via the AUDIO= line in the where or cfg file. If no such line | ||
+ | |||
+ | exists, then it is assumed that the current drive is the CD-ROM drive.<br /> | ||
+ | | ||
==<br /> Ver 1.001.070 - 1/15/93 == | ==<br /> Ver 1.001.070 - 1/15/93 == | ||
− | Chris Smith | + | '''Chris Smith''' |
+ | |||
+ | Modified PatchDir syntax and all pertinent patch-management routines to permit more than | ||
+ | |||
+ | one path specification for locating resource patches. If PatchDir is omitted, just the | ||
+ | |||
+ | current directory will be used for locating patches; if PatchDir is specified then the | ||
+ | |||
+ | current directory will not be used for locating patches unless it is explicitly named. | ||
+ | |||
+ | Directories are scanned in PatchDir-specified order and duplicate resources are bypassed. | ||
+ | |||
+ | CD-ROM audio 'red-book' functionality is re-introduced in part into the interpreter. | ||
− | + | Currently, the red-book dri==<br /> Ver must be named 'AUDCDROM.DRV' and must be located | |
− | + | in the same directory as the audio dri==<br /> Ver that was loaded. If no audio dri==<br | |
− | - | + | /> Ver was sucessfully initialized then no red-book audio can be played. .<br /> |
+ | | ||
==<br /> Ver 1.001.069 - 1/12/93 == | ==<br /> Ver 1.001.069 - 1/12/93 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
Added capability to specify arbitrary characters in message text with \xx syntax. | Added capability to specify arbitrary characters in message text with \xx syntax. | ||
Line 270: | Line 491: | ||
Trapped | character in edit controls, since it's a control character for text output. | Trapped | character in edit controls, since it's a control character for text output. | ||
− | Added (Message MsgGetKey @vals) kernel call to retrieve the module, noun, verb, case and | + | Added (Message MsgGetKey @vals) kernel call to retrieve the module, noun, verb, case and |
− | + | sequence number of the last message retrieved by (Message MsgGet) or (Message MsgNext).<br | |
+ | |||
+ | /> | ||
+ | | ||
==<br /> Ver 1.001.068 - 12/30/92 == | ==<br /> Ver 1.001.068 - 12/30/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Changed end point calculation for container polygons when OPT = 0. | + | Changed end point calculation for container polygons when OPT = 0.<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.067 - 12/15/92 == | ==<br /> Ver 1.001.067 - 12/15/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Put timing loops in the show styles for picture drawing. They were drawing too fast on 486 | + | Put timing loops in the show styles for picture drawing. They were drawing too fast on 486 |
− | + | machines.<br /> | |
+ | | ||
==<br /> Ver 1.001.066 - 12/14/92 == | ==<br /> Ver 1.001.066 - 12/14/92 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
Added new Message kernel functions: | Added new Message kernel functions: | ||
− | MsgGetRefNoun, MsgGetRefVerb and MsgGetRefCase, which return the appropriate value, or -1 | + | MsgGetRefNoun, MsgGetRefVerb and MsgGetRefCase, which return the appropriate value, or -1 |
− | + | if the message isn't found. | |
− | + | MsgPush and MsgPop which save the current iterator state, so that a sequence of messages | |
+ | |||
+ | can be displayed without interfering with a previous sequence.<br /> | ||
+ | | ||
==<br /> Ver 1.001.065 - 12/10/92 == | ==<br /> Ver 1.001.065 - 12/10/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Fix on avoider for container polygons. Going from one container to another. See main1.c | + | Fix on avoider for container polygons. Going from one container to another. See main1.c |
− | + | and test76.bat.<br /> | |
+ | | ||
==<br /> Ver 1.001.064 - 12/08/92 == | ==<br /> Ver 1.001.064 - 12/08/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Changed sci.c method of getting the resource.cfg directory for Terry McHenry. | + | Changed sci.c method of getting the resource.cfg directory for Terry McHenry.<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.063 - 12/07/92 == | ==<br /> Ver 1.001.063 - 12/07/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Changed getpath.c and getpath.h to fix container polygons. Also changed some code for | + | Changed getpath.c and getpath.h to fix container polygons. Also changed some code for |
− | + | clarity.<br /> | |
+ | | ||
==<br /> Ver 1.001.063 - 12/07/92 == | ==<br /> Ver 1.001.063 - 12/07/92 == | ||
− | Jack Magne | + | '''Jack Magne''' |
− | Terry M. made changes to sci.c and savegame.c where saveDir is set to where the where file | + | Terry M. made changes to sci.c and savegame.c where saveDir is set to where the where file |
− | + | is located. .<br /> | |
+ | | ||
==<br /> Ver 1.001.062 - 12/02/92 == | ==<br /> Ver 1.001.062 - 12/02/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Made some changes to getpath.c for container polygons. See Main55.c and test75.bat in the | + | Made some changes to getpath.c for container polygons. See Main55.c and test75.bat in the |
− | + | regression test suite.<br /> | |
+ | | ||
==<br /> Ver 1.001.061 - 11/25/92 == | ==<br /> Ver 1.001.061 - 11/25/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Made some changes to getpath.c for container polygons. In some cases the path generated | + | Made some changes to getpath.c for container polygons. In some cases the path generated |
− | + | did not extend as far as was possible. See Main54.c and test74.bat in the regression test | |
+ | |||
+ | suite.<br /> | ||
+ | | ||
==<br /> Ver 1.001.061 - 11/18/92 == | ==<br /> Ver 1.001.061 - 11/18/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
+ | |||
+ | Changed the keyboard polling from 6 ticks to 1 tick. This was to prevent animation cycles | ||
+ | |||
+ | from going by while there was a keyboard event waiting to be posted. Along with this | ||
+ | |||
+ | change is a change to the audio drivers to intercept the keyboard events to signal the | ||
+ | |||
+ | audio dri==<br /> Ver that a keyboard interrupt is in progress. This is because there | ||
+ | |||
+ | will always be a small window where the audio dri==<br /> Ver can be invoked while in the | ||
− | + | keyboard dri==<br /> Ver If this interpreter is used without the new drivers lockups will | |
− | + | result.<br /> | |
+ | | ||
==<br /> Ver 1.001.060 - 11/11/92 == | ==<br /> Ver 1.001.060 - 11/11/92 == | ||
− | Ed Critchlow | + | '''Ed Critchlow''' |
− | Made local coordinates global for dialog box text | + | Made local coordinates global for dialog box text selectio.<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.059 - 11/10/92 == | ==<br /> Ver 1.001.059 - 11/10/92 == | ||
− | Ed Critchlow | + | '''Ed Critchlow''' |
− | Fixed a bug caused by not setting "acc" in kernel.c | + | Fixed a bug caused by not setting "acc" in kernel.c onl.<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.058 - 11/06/92 == | ==<br /> Ver 1.001.058 - 11/06/92 == | ||
− | Jack Magne | + | '''Jack Magne''' |
Fixed a bug caused by the previous fix regarding stopUpdated, scaled views. | Fixed a bug caused by the previous fix regarding stopUpdated, scaled views. | ||
Line 382: | Line 624: | ||
Ed C. | Ed C. | ||
− | Created the ability to select words in dialog box with mouse. | + | Created the ability to select words in dialog box with mouse..<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.043 - 10/21/92 == | ==<br /> Ver 1.001.043 - 10/21/92 == | ||
− | Jack Magne | + | '''Jack Magne''' |
− | Fixed a bug where a stopUpdated, scaled view fails to erase itself from the screen when | + | Fixed a bug where a stopUpdated, scaled view fails to erase itself from the screen when |
− | + | its dispose method is invoked.<br /> | |
+ | | ||
==<br /> Ver 1.001.042 - 9/1/92 == | ==<br /> Ver 1.001.042 - 9/1/92 == | ||
− | Martin Peters | + | '''Martin Peters''' |
+ | |||
+ | Added new random number generator to math.s. It now uses a 32 bit seed and returns a 32 | ||
+ | |||
+ | bit value. Changed Kernel.c to use the middle 16 bits of the 32 bit random as a | ||
+ | |||
+ | multiplier on the range of value. once the range is scaled by the random 16bits it is then | ||
+ | |||
+ | shifted left 16 to obtain a random value between 0 and (range - 1) this is added to the | ||
+ | |||
+ | low ofset to obtain a random value between low and high. Also the seed set and retrievel | ||
− | + | is done by passing a single 16bit pointer to a 32 bit location @(array size 2) in the | |
− | + | first parameter to set or in the third to recieve the seed.<br /> | |
+ | | ||
==<br /> Ver 1.001.041 - 8/27/92 == | ==<br /> Ver 1.001.041 - 8/27/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
+ | |||
+ | Added default cursor view to the interpreter. If 998.v56 exits, loop 0 cel 0 of that view | ||
− | + | will be the default cursor. If not the default cursor will be the cursor in the dri==<br | |
− | + | /> Ver.<br /> | |
+ | | ||
==<br /> Ver 1.001.041 - 8/27/92 == | ==<br /> Ver 1.001.041 - 8/27/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Fixed bug in getpath.c. It concerned a BAP polygon within a TAP polygon. | + | Fixed bug in getpath.c. It concerned a BAP polygon within a TAP polygon..<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.039 - 8/12/92 == | ==<br /> Ver 1.001.039 - 8/12/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Added error check for returning heap at an odd address. | + | Added error check for returning heap at an odd address.<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.039 - 8/12/92 == | ==<br /> Ver 1.001.039 - 8/12/92 == | ||
− | Chad Bye | + | '''Chad Bye''' |
Changed SAVEGAME.C to use PK Implode compression instead of RLE. | Changed SAVEGAME.C to use PK Implode compression instead of RLE. | ||
− | Added two new kernel calls: Record and PlayBack. All sci events and mouse movements can now be recorded and saved to a file for playback.<br /> | + | Added two new kernel calls: Record and PlayBack. All sci events and mouse movements can |
− | The format for these functions is:<br /> | + | |
− | (Record flag <filename>)<br /> | + | now be recorded and saved to a file for playback.<br /> |
+ | The format for these functions is:<br /.<br /> | ||
+ | (Record flag <filename>)<br /.<br /> | ||
(PlayBack flag <filename>)<br /> | (PlayBack flag <filename>)<br /> | ||
flag=TRUE turns the function on, flag=FALSE turns it off.<br /> | flag=TRUE turns the function on, flag=FALSE turns it off.<br /> | ||
If a filename is not supplied, data is written to sci_evt.mac.<br /> | If a filename is not supplied, data is written to sci_evt.mac.<br /> | ||
The macro file is a text file which can be edited if necessary.<br /> | The macro file is a text file which can be edited if necessary.<br /> | ||
− | The format for the file is:<br /> | + | The format for the file is:<br /.<br /> |
− | eventPollCnt, event type, event message, event modifiers, event y, event x<br /> | + | eventPollCnt, event type, event message, event modifiers, event y, event x<br |
+ | |||
+ | /> | ||
There must be a blank line seperating each event.<br /> | There must be a blank line seperating each event.<br /> | ||
− | These functions will only work in the debug interpreters.<br /> | + | These functions will only work in the debug interpreters.<br /.<br /> |
+ | | ||
− | - | + | ==<br /> Ver 1.001.038 - 8/11/92 == |
− | + | '''Mark Wilden''' | |
− | + | Upped message stack size to five entries..<br /> | |
+ | | ||
− | + | ==<br /> Ver 1.001.037 - 8/11/92 == | |
− | + | '''Martin Peters''' | |
− | + | Added Fix to scaling. Changes included from IBMNEXT. changes to scale.c to calculate ne | |
− | + | offset values within cells. Changes to CELS.S to use new scaled offset in calculating cel | |
− | + | positions and procedures to return current offset values. Finally changed animate to | |
− | + | include new calls to these procedures to scale offsets.<br /> | |
+ | | ||
==<br /> Ver 1.001.036 - 8/11/92 == | ==<br /> Ver 1.001.036 - 8/11/92 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | Support ME 4 message file format. Support reference fields, where one message points to | + | Support ME 4 message file format. Support reference fields, where one message points to |
− | + | others.<br /> | |
+ | | ||
==<br /> Ver 2.000.014 - == | ==<br /> Ver 2.000.014 - == | ||
− | Jack Magne | + | '''Jack Magne''' |
− | Improved operation of the SetCursor call that restricts the cursor to a rectangular area. | + | Improved operation of the SetCursor call that restricts the cursor to a rectangular area. |
− | + | .<br /> | |
+ | | ||
==<br /> Ver 2.000.013 - == | ==<br /> Ver 2.000.013 - == | ||
− | Martin Peters | + | '''Martin Peters''' |
− | Modified animate to scale the x and y offsets of scaled cels so they are drawn relative to | + | Modified animate to scale the x and y offsets of scaled cels so they are drawn relative to |
− | + | a proportional x and y origin point in the cel. This removes the hopping look for cels | |
+ | |||
+ | with movers.<br /> | ||
+ | | ||
==<br /> Ver 2.000.011 - 7/27/92 == | ==<br /> Ver 2.000.011 - 7/27/92 == | ||
Line 490: | Line 756: | ||
Chad Bye | Chad Bye | ||
− | Added text codes to support multi-color and multi-font text messages. Two new kernel calls were added for this: TextColors and TextFonts. TextColors and TextFonts are used to initialize the colors and fonts that can be used in text messages. The format for the new functions is:<br /> | + | Added text codes to support multi-color and multi-font text messages. Two new kernel calls |
− | (TextColors <color 0> <color 1> <color 2> ...)<br /> | + | |
+ | were added for this: TextColors and TextFonts. TextColors and TextFonts are used to | ||
+ | |||
+ | initialize the colors and fonts that can be used in text messages. The format for the new | ||
+ | |||
+ | functions is:<br /.<br /> | ||
+ | (TextColors <color 0> <color 1> <color 2> ...)<br /.<br /> | ||
(TextFonts <font 0> <font 1> <font 2> ...)<br /> | (TextFonts <font 0> <font 1> <font 2> ...)<br /> | ||
− | The following text codes can now be inserted in any string:<br /> | + | The following text codes can now be inserted in any string:<br /.<br /> |
− | |c#| - Text following this code will be color # in the text colors table.<br /> | + | |c#| - Text following this code will be color # in the text colors table.<br |
− | |c| - Text following this code will be the default window color.<br /> | + | |
− | |f#| - Text following this code will be font # in the text fonts table.<br /> | + | /.<br /> |
− | |f| - Text following this code will be the default window font.<br /> | + | |c| - Text following this code will be the default window color.<br /.<br /> |
+ | |f#| - Text following this code will be font # in the text fonts table.<br | ||
+ | |||
+ | /.<br /> | ||
+ | |f| - Text following this code will be the default window font.<br /.<br /> | ||
|| - Prints the character '|'<br /> | || - Prints the character '|'<br /> | ||
− | Changed ERRMSG.C. There is no longer an ErrMsg function. Panic and RAlert have both been changed to accept a message number (which is loaded from INTERP.ERR) instead of a string. | + | Changed ERRMSG.C. There is no longer an ErrMsg function. Panic and RAlert have both been |
+ | |||
+ | changed to accept a message number (which is loaded from INTERP.ERR) instead of a string. | ||
− | + | These functions also have a variable length argument list, so formatted strings can still | |
− | + | be used. | |
+ | |||
+ | Added many error messages to INTERP.ERR because of the above change.<br /> | ||
+ | | ||
==<br /> Ver 1.001.029 - 6/1/92 == | ==<br /> Ver 1.001.029 - 6/1/92 == | ||
− | Chris Smith | + | '''Chris Smith''' |
+ | |||
+ | Audio samples can now follow the same NOUN-VERB convention as Msg resources and/or follow | ||
+ | |||
+ | the standard resource-naming convention (e.g. 123.AUD). A makevols-like utility named | ||
+ | |||
+ | MAKEMAPS.EXE is used to combine individual audio samples into room-specific .MAP resources | ||
+ | |||
+ | which are then built into volumes in the same manner as all other resource types (*.AUD | ||
+ | |||
+ | samples are built into 0.MAP). RESOURCE.AUD is generated in the process which can be | ||
+ | |||
+ | split across floppies and recombined at install-time just as RESOURCE.000. | ||
+ | |||
+ | CFG/WHERE files now recognize the individual lines audioSize=?K (default is now 8K), | ||
+ | |||
+ | audioDisk=YES or NO (default is YES; specify NO if your game does not stream audio from | ||
− | + | disk -- that will save you half-a-K of hunk) and audioPort=xxx (default is 220 hex; this | |
− | + | line only has meaning to Sound Blasters). The parameters 'size=', 'disk=' and 'port=' | |
− | + | (which use to be on the audioDrv= line) are no longer recognized.<br /> | |
+ | | ||
==<br /> Ver 1.001.028 - 6/1/92 == | ==<br /> Ver 1.001.028 - 6/1/92 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | Fixed ERRMSG.C to allocate larger buffer for preloaded error messages. | + | Fixed ERRMSG.C to allocate larger buffer for preloaded error messages.<br /> |
+ | | ||
− | - | + | ==<br /> Ver 1.001.027 - 5/29/92 == |
− | + | '''Mark Wilden''' | |
− | + | Preload error message for ARM checksum failure to avoid memory allocation while displaying | |
− | + | it. | |
INTERP.ERR changed. | INTERP.ERR changed. | ||
Line 534: | Line 833: | ||
5/28/92 | 5/28/92 | ||
− | Larry Scott | + | '''Larry Scott''' |
+ | |||
+ | Added new function to PalVary kernel call. PALVARYTARGET will allow a custom palette to be | ||
− | + | inserted into the target palette. | |
− | The DrawControl routine now looks at the NoShowBits flag instead of the PicNotValid | + | The DrawControl routine now looks at the NoShowBits flag instead of the PicNotValid |
− | + | flag.<br /> | |
+ | | ||
==<br /> Ver 1.001.026 - 5/27/92 == | ==<br /> Ver 1.001.026 - 5/27/92 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | ARM now keeps its pageMaps in hunk instead of heap, saving even more heap. Code was | ||
− | + | generalized to remove duplication, which saves hunk. | |
5/28/92 | 5/28/92 | ||
− | Mark Wilden | + | '''Mark Wilden''' |
Changed name of KCheck() to KResCheck(). | Changed name of KCheck() to KResCheck(). | ||
Line 556: | Line 860: | ||
5/26/92 | 5/26/92 | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Changed kernel call to KPicNotValid to set NoShowBits instead of PicNotValid. Also | + | Changed kernel call to KPicNotValid to set NoShowBits instead of PicNotValid. Also |
− | + | KDrawCel now looks at NoShowBits to determine if ShowBits is to be called. The SCI | |
+ | |||
+ | programmer show not be modifying PicNotValid.<br /> | ||
+ | | ||
==<br /> Ver 1.001.025 - 5/22/92 == | ==<br /> Ver 1.001.025 - 5/22/92 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | Improved ARM checksum failure message. If ARM detects that the data it retrieves from | + | Improved ARM checksum failure message. If ARM detects that the data it retrieves from |
− | + | EMS/XMS/Extended memory is not the same that it wrote, it aborts with a message telling | |
+ | |||
+ | the user to run Install and choose not to use his extra memory. | ||
− | + | INTERP.ERR changed.<br /> | |
+ | | ||
==<br /> Ver 1.001.024 - 5/20/92 == | ==<br /> Ver 1.001.024 - 5/20/92 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | Fixed ARM bugs introduced by Jeff in the MASM 6.0 conversion and Tom Shimada in conditional compile for NEC9801. The first reversed an error condition when running with no memory manager. The second didn't store data when using XMS (as with QEMM with the FR=NONE parameter). | + | Fixed ARM bugs introduced by Jeff in the MASM 6.0 conversion and Tom Shimada in |
+ | |||
+ | conditional compile for NEC9801. The first reversed an error condition when running with | ||
+ | |||
+ | no memory manager. The second didn't store data when using XMS (as with QEMM with the | ||
+ | |||
+ | FR=NONE parameter). | ||
Made ARM pagemaps dynamic, which will save at least 2K of heap. | Made ARM pagemaps dynamic, which will save at least 2K of heap. | ||
Line 584: | Line 900: | ||
Generalized some ARM code, which will help hunk. | Generalized some ARM code, which will help hunk. | ||
− | Made ARM checksumming always on. If ARM detects that the data it stored is bad, it will | + | Made ARM checksumming always on. If ARM detects that the data it stored is bad, it will |
− | + | Panic out, instead of letting things proceed with the bad data.<br /> | |
+ | | ||
==<br /> Ver 1.001.023 - 5/15/92 == | ==<br /> Ver 1.001.023 - 5/15/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Changes to allow PalVary work for save, restore and restart. | + | Changes to allow PalVary work for save, restore and restart.<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.022 - 5/12/92 == | ==<br /> Ver 1.001.022 - 5/12/92 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | Fixed several bugs in FILEIO.S where drive letters were assumed to be in lower case and | + | Fixed several bugs in FILEIO.S where drive letters were assumed to be in lower case and |
− | + | where RGetFreeSpace didn't return default drive space when passed 0.<br /> | |
+ | | ||
==<br /> Ver 1.001.021 - 5/11/92 == | ==<br /> Ver 1.001.021 - 5/11/92 == | ||
− | Jack Magne | + | '''Jack Magne''' |
− | Added a special effects cursor that can be used for various effects like magnification and | + | Added a special effects cursor that can be used for various effects like magnification and |
− | - | + | see-through.<br /> |
+ | | ||
==<br /> Ver 1.001.021 - 5/11/92 == | ==<br /> Ver 1.001.021 - 5/11/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Added code to make PalVary work under the ega640.drv dri==<br /> Ver The change will | + | Added code to make PalVary work under the ega640.drv dri==<br /> Ver The change will |
− | + | always happen instantly under EGA. Also added the variable NumberColors that's set by the | |
+ | |||
+ | video driver.<br /> | ||
+ | | ||
==<br /> Ver 1.001.021 - 5/11/92 == | ==<br /> Ver 1.001.021 - 5/11/92 == | ||
− | Chris Smith | + | '''Chris Smith''' |
+ | |||
+ | Added three new where/config file arguments that are placed on the audioDrv= line: | ||
− | + | size=nK (default n is 4) disk=x (default x is YES which means audio samples can be played | |
− | + | directly from disk; NO will cause the audio drivers to purge direct-disk play support, | |
− | + | saving about 1K memory space) port=x (default is 220 hex). | |
− | -- | + | Added static buffer to audio support that does not span a 64K boundary so that continuous |
+ | |||
+ | DMA can be utilized for sample playback. The actual buffer allocated depends on the size= | ||
+ | |||
+ | argument as described above. | ||
+ | |||
+ | Added kernel function KCheck (works just like KLoad but returns TRUE/FALSE instead of | ||
+ | |||
+ | handle if the specified resource(s) can be located -- no read will take place).<br /> | ||
+ | | ||
==<br /> Ver 1.001.021 - 5/4/92 == | ==<br /> Ver 1.001.021 - 5/4/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Added debug commands k and K which break on a specific kernel call. k is break once and K | + | Added debug commands k and K which break on a specific kernel call. k is break once and K |
− | + | is a sticky break. When you enter k or K you will be prompted for the specific kernel call | |
+ | |||
+ | number. i.e. 113 is KPalVary.<br /> | ||
+ | | ||
==<br /> Ver 1.001.020 - 5/5/92 == | ==<br /> Ver 1.001.020 - 5/5/92 == | ||
Line 644: | Line 979: | ||
Corey Cole | Corey Cole | ||
− | Fixed a bug in script.c which caused crashes in Mixed-Up Mother Goose and potentially | + | Fixed a bug in script.c which caused crashes in Mixed-Up Mother Goose and potentially |
− | + | corrupted memory in other games.<br /> | |
+ | | ||
==<br /> Ver 1.001.020 - 5/4/92 == | ==<br /> Ver 1.001.020 - 5/4/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | Expanded the functionality of CheckFreeSpace. See below for a description of the kernel call: | + | Expanded the functionality of CheckFreeSpace. See below for a description of the kernel |
+ | |||
+ | call: | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
Line 671: | Line 1,009: | ||
} | } | ||
} | } | ||
− | </syntaxhighlight> | + | </syntaxhighlight.<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.020 - 5/4/92 == | ==<br /> Ver 1.001.020 - 5/4/92 == | ||
− | Larry Scott | + | '''Larry Scott''' |
− | A bug fix was made to MergePoly in getpath.c the bug fixes regression test #101 in the set | + | A bug fix was made to MergePoly in getpath.c the bug fixes regression test #101 in the set |
− | + | of regression tests for getpath.c.<br /> | |
+ | | ||
==<br /> Ver 1.001.016 - 4/29/92 == | ==<br /> Ver 1.001.016 - 4/29/92 == | ||
Line 687: | Line 1,025: | ||
John Magne | John Magne | ||
− | This version includes Corey Cole's new fill routine which is designed to save heap storage. Also Larry's Pal Vary scheme has been made more accurate o==<br /> Ver short time | + | This version includes Corey Cole's new fill routine which is designed to save heap |
+ | |||
+ | storage. Also Larry's Pal Vary scheme has been made more accurate o==<br /> Ver short time | ||
− | + | intervals. I have included fixes for the polygon based avoider and the ShakeScreen kernel | |
− | + | call. '''Chris Smith''' has fixed a bug that resulted in sampled sound calls returning | |
+ | |||
+ | false information to the apps programmers. | ||
+ | |||
+ | Corey also eliminated the "Brush" routine in DrawPic, which will now give a PANIC error | ||
+ | |||
+ | message, and made changes to the debug routines to reduce stack usage (including some | ||
+ | |||
+ | changes made by Larry).<br /> | ||
+ | | ||
==<br /> Ver 1.001.015 - 4/24/92 == | ==<br /> Ver 1.001.015 - 4/24/92 == | ||
Line 697: | Line 1,046: | ||
John Magne | John Magne | ||
− | This version includes Chris Smith's fix to allow volume based interpreters to work | + | This version includes '''Chris Smith''''s fix to allow volume based interpreters to work |
− | + | with message files. Dan Foy has fixed a bug that caused the interpreter to trash views | |
+ | |||
+ | saved with q3 compression.<br /> | ||
+ | | ||
==<br /> Ver 1.001.014 - 4/21/92 == | ==<br /> Ver 1.001.014 - 4/21/92 == | ||
Line 705: | Line 1,057: | ||
John Magne | John Magne | ||
− | Pal Varying scheme will now work correctly when running the interpreter with the -p option | + | Pal Varying scheme will now work correctly when running the interpreter with the -p option |
− | + | in effect.<br /> | |
+ | | ||
==<br /> Ver 1.001.013 - 4/21/92 == | ==<br /> Ver 1.001.013 - 4/21/92 == | ||
Line 713: | Line 1,066: | ||
John Magne | John Magne | ||
− | Fixed bugs to allow the Pal Varying scheme to work smoothly on room changes. | + | Fixed bugs to allow the Pal Varying scheme to work smoothly on room changes.<br /> |
− | + | | |
− | |||
==<br /> Ver 1.001.012 - 4/20/92 == | ==<br /> Ver 1.001.012 - 4/20/92 == | ||
Line 721: | Line 1,073: | ||
John Magne | John Magne | ||
− | Fixed minor bug in the Brush sub function of routine of DrawPic. Was causing occasional | + | Fixed minor bug in the Brush sub function of routine of DrawPic. Was causing occasional |
− | + | lockups on room changes.<br /> | |
+ | | ||
==<br /> Ver 1.001.011 - 4/17/92 == | ==<br /> Ver 1.001.011 - 4/17/92 == | ||
Line 729: | Line 1,082: | ||
John Magne | John Magne | ||
− | Fixed a bug in midi.s that was resulting in writing data to memory reserved for the operating system. This was causing various QEMM exceptions. We are still using the pre | + | Fixed a bug in midi.s that was resulting in writing data to memory reserved for the |
+ | |||
+ | operating system. This was causing various QEMM exceptions. We are still using the pre | ||
− | + | Masm 6.0 version of midi..<br /> | |
+ | | ||
==<br /> Ver 1.001.010 - 4/15/92 == | ==<br /> Ver 1.001.010 - 4/15/92 == | ||
Line 737: | Line 1,093: | ||
John Magne | John Magne | ||
− | Retrieved the last version of midi.s and midi.i that used Masm 5.1 to attempt to remove | + | Retrieved the last version of midi.s and midi.i that used Masm 5.1 to attempt to remove |
− | + | bugs created by the conversion to Masm 6.0.<br /> | |
+ | | ||
==<br /> 4/6/92 == | ==<br /> 4/6/92 == | ||
Line 746: | Line 1,103: | ||
John Magne | John Magne | ||
− | Fixed problem that resulted in overlays being drawn backwards. | + | Fixed problem that resulted in overlays being drawn backwards.<br /> |
− | + | | |
− | |||
==<br /> 4/1/92 == | ==<br /> 4/1/92 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | Added MsgSize function to Message kernel call. The calling syntax is<br /> | + | Added MsgSize function to Message kernel call. The calling syntax is<br /.<br /> |
(= size (Message MsgSize module noun verb case sequence))<br /> | (= size (Message MsgSize module noun verb case sequence))<br /> | ||
− | The function returns the size of the buffer needed to store the message, including the | + | The function returns the size of the buffer needed to store the message, including the |
− | + | trailing NULL. A blank message returns 1. A missing message returns 0. Stage directions | |
− | + | (all caps inside parentheses) are included in the length | |
+ | |||
+ | Fixed Panic message.<br /> | ||
+ | | ||
==<br /> 3/15/92 == | ==<br /> 3/15/92 == | ||
Line 766: | Line 1,125: | ||
John Magne | John Magne | ||
− | Added support for the dynamic scaling of views. Thus views can be sized depending upon | + | Added support for the dynamic scaling of views. Thus views can be sized depending upon |
− | + | their position on the screen or under direct control of the programmer.<br /> | |
+ | | ||
==<br /> 3/3/92 == | ==<br /> 3/3/92 == | ||
Line 774: | Line 1,134: | ||
Jeff Stephenson | Jeff Stephenson | ||
− | "Make"ing the system now does a number of version-control related tasks. First, it creates the file 'info.c' including the VCSID of the person making the interpreter, the date/time of the make, the version number, the path of the directory in which the make is executing, and a comment from the file .\comment\comment. Make is then invoked recursivly after this is created and since all interpreters depend on this file, all interpreters are then rebuilt. | + | "Make"ing the system now does a number of version-control related tasks. First, it creates |
+ | |||
+ | the file 'info.c' including the VCSID of the person making the interpreter, the date/time | ||
+ | |||
+ | of the make, the version number, the path of the directory in which the make is executing, | ||
+ | |||
+ | and a comment from the file .\comment\comment. Make is then invoked recursivly after this | ||
+ | |||
+ | is created and since all interpreters depend on this file, all interpreters are then | ||
+ | |||
+ | rebuilt. | ||
+ | |||
+ | Once the interpreters have been successfully built, all version controlled files in .\vcs | ||
− | + | are stamped with the current version number. While this takes some time, it allows the | |
− | Two utilities are required for this process and should be in your execution path (they are present in i:\interp\sci\ibm): | + | source for any module to be retrieved by version number. |
+ | |||
+ | Two utilities are required for this process and should be in your execution path (they are | ||
+ | |||
+ | present in i:\interp\sci\ibm): | ||
{| | {| | ||
− | |inc_it:||Increments the last three digits of a dotted version number in a specified file.<br /><br /> inc_it version.dat<br /><br />increments the version number in 'version.dat'. | + | |inc_it:||Increments the last three digits of a dotted version number in a specified |
+ | |||
+ | file.<br /><br /> inc_it version.dat<br /><br />increments the version number | ||
+ | |||
+ | in 'version.dat'. | ||
|- | |- | ||
− | |oneline:||Writes its parameters to stdout as a single line. Any string bracketed by '@' is interpreted as the name of a file which is to be included in the output line. Thus, if the file 'test.dat' consisted of the string "is a", the command<br /><br /> oneline This @test.dat@ test<br /><br />would produce<br /><br /> This is a test<br /><br />on stdout. The '\' character works as an escape character, allowing an '@' to be included, if necessary. | + | |oneline:||Writes its parameters to stdout as a single line. Any string bracketed by '@' |
+ | |||
+ | is interpreted as the name of a file which is to be included in the output line. Thus, if | ||
+ | |||
+ | the file 'test.dat' consisted of the string "is a", the command<br /><br | ||
+ | |||
+ | /> oneline This @test.dat@ test<br /><br />would produce<br /><br | ||
+ | |||
+ | /> This is a test<br /><br />on stdout. The '\' character works as an escape | ||
+ | |||
+ | character, allowing an '@' to be included, if necessary. | ||
|} | |} | ||
Borland C++ source code for these utilities is in i:\interp\sci\tools\utils. | Borland C++ source code for these utilities is in i:\interp\sci\tools\utils. | ||
− | The assembly language preprocessor for Intel code (as.exe and ap86.exe) are now obsolete. All assembly source code for the interpreter has been converted to use the MASM 6.0 structured assembly constructs, which are far superior. | + | The assembly language preprocessor for Intel code (as.exe and ap86.exe) are now obsolete. |
+ | |||
+ | All assembly source code for the interpreter has been converted to use the MASM 6.0 | ||
+ | |||
+ | structured assembly constructs, which are far superior. | ||
− | <div align="center"><span size="14pt">'''**** PLEASE use these constructs rather than | + | <div align="center"><span size="14pt">'''**** PLEASE use these constructs rather than |
+ | labels and jumps! ****'''</span></div> | ||
− | |||
− | + | If you don't have a copy of MASM 6.0, get one from Larry.<br /> | |
+ | | ||
==<br /> 8/08/91 == | ==<br /> 8/08/91 == | ||
− | Chris Smith | + | '''Chris Smith''' |
+ | |||
+ | Restructured map file layout: All resource entries are ordered by type and subordered by | ||
− | + | id; bits pertaining to type are removed from each individual entry allowing ids to ranged | |
− | + | up to 65536; index table at head of map file indicates where each resource type group | |
− | ----- | + | starts -- its format is 1-byte resource type followed by 2-byte offset from start of map |
+ | |||
+ | file to first resource of that type -- indexes are also sorted by type but can not be | ||
+ | |||
+ | indexed into since gaps may arise from no resources of a specific type; the last index is | ||
+ | |||
+ | followed by a byte of 255 and 2-bytes of map file size (so that a specific resource entry | ||
+ | |||
+ | can be found by binary searching its type group). | ||
+ | |||
+ | Auto-patch table generation: A table of (byte)types/(word)ids is generated upon game | ||
+ | |||
+ | start or restart so that resource patch search begins with a memory-resident table look-up | ||
+ | |||
+ | rather than a disk(disc in the worse case of CDROM) search. A .cfg file entry of | ||
+ | |||
+ | patchDir=directory indicates where feed for the table generation may lie (no patchDir | ||
+ | |||
+ | entry defaults to current directory).<br /> | ||
+ | | ||
==<br /> 7/11/91 == | ==<br /> 7/11/91 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | Added MSG resource type. These are used in text versions of games to store text messages | ||
− | + | that are mirrored in sync and audio files in CD versions. Added<br /.<br /> | |
GetMessage(int module, int talker, int msg, char* buffer)<br /> | GetMessage(int module, int talker, int msg, char* buffer)<br /> | ||
− | to access this resource from the interpreter and a KGetMessage() wrapper to access from | + | to access this resource from the interpreter and a KGetMessage() wrapper to access from |
− | + | SCI.<br /> | |
+ | | ||
==<br /> 5/27/91 == | ==<br /> 5/27/91 == | ||
Line 821: | Line 1,240: | ||
Pablo Ghenis | Pablo Ghenis | ||
− | Internal rearrangement of functions and variables in SCI modules (both C and assembler) in | + | Internal rearrangement of functions and variables in SCI modules (both C and assembler) in |
− | + | order to improve code reusability, size and speed (yes. there IS a free lunch!). This set | |
− | + | of changes affects i:\interp\sci, which contains programs SCI and MAKEVOLS. To get the | |
− | # Each public symbol (variable or function) is declared in a header file with the same name as the source file that provides it. For example, Panic is a procedure provided by start.s, so it is externally declared in start.i (for .s files to include) and also in start.h (for .c files that invoke Panic).<br /><br /> | + | full benefit of these changes, they should also migrate as soon as possible to i:\interp |
− | This will make it easier to find things in the interpreter directory, since all one has to do is type:<br /> | + | |
+ | \sci\sc and i:\interp\sci\parscomp. | ||
+ | |||
+ | The following conventions are now observed (anyone linked with the generation and | ||
+ | |||
+ | compilation of non-compliant code will be summarily executed!): | ||
+ | |||
+ | # There are no extern declarations within .c or .s files, only within .h and .i files. | ||
+ | |||
+ | There are no duplicates. | ||
+ | |||
+ | # Each public symbol (variable or function) is declared in a header file with the same | ||
+ | |||
+ | name as the source file that provides it. For example, Panic is a procedure provided by | ||
+ | |||
+ | start.s, so it is externally declared in start.i (for .s files to include) and also in | ||
+ | |||
+ | start.h (for .c files that invoke Panic).<br /><br /> | ||
+ | This will make it easier to find things in the interpreter directory, since all one has to | ||
+ | |||
+ | do is type:<br /.<br /> | ||
GREP foo *.h *.i<br /> | GREP foo *.h *.i<br /> | ||
− | to find out where "foo" is defined, since the source file is guaranteed to have the same | + | to find out where "foo" is defined, since the source file is guaranteed to have the same |
− | + | name as the header file that declared it. | |
− | # | + | # All symbols that exist in the standard C header files (ie. those provided by Microsoft |
− | + | C) are declared in a file that has the same name. For example, our SCI directory contains | |
− | + | a file named STDLIB.H that contains the prototype for atoi(strptr s), since this is where | |
− | + | atoi is found in the standard header file set. To comply with (2) there is now a stdlib.c | |
+ | |||
+ | that resolves all externals declared in stdlib.h | ||
+ | |||
+ | # This will make it much easier to share source modules among the different tools we use, | ||
+ | |||
+ | most of which include the standard header files (except the interpreter!). For example, if | ||
+ | |||
+ | we now include our own version of string.h we are guaranteed NOT to redefine symbols | ||
+ | |||
+ | provided by other header files, unlike the previous situation where the order of inclusion | ||
+ | |||
+ | was critical to make sure that we "won" in case of redefinitions. | ||
+ | |||
+ | # All symbols that are local to a module are now declared "static near", which makes code | ||
+ | |||
+ | smaller AND faster. All external symbols are declared global. Every symbol is explicitly | ||
+ | |||
+ | tagged as EITHER global OR static near, to improve readability. The interpreter is now | ||
+ | |||
+ | about 2300 bytes smaller, and a bit faster as well. | ||
+ | |||
+ | # All programs now compile and link with ZERO warnings in i:\interp\sci. This will prevent | ||
+ | |||
+ | new warnings from being overlooked, since there are not supposed to be any.<br /> | ||
+ | | ||
==<br /> 3/14/91 == | ==<br /> 3/14/91 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | Updated from foreign language interpreter. Changes involved calling StrSplit where | ||
+ | |||
+ | appropriate, different parameters to TextSize, StrSplit and GetFarText, adding NEC9801 | ||
− | + | conditional code. | |
Files changed:<br /> | Files changed:<br /> | ||
Line 864: | Line 1,332: | ||
TEXT.H.<br /> | TEXT.H.<br /> | ||
STRSPLIT.C/.H was renamed LANGUAGE.C/.H. | STRSPLIT.C/.H was renamed LANGUAGE.C/.H. | ||
− | </blockquote> | + | </blockquote.<br /> |
+ | | ||
− | + | ==<br /> 3/1/91 == | |
− | + | '''Mark Wilden''' | |
− | + | soundDrv entry in WHERE and RESOURCE.CFG enhanced to allow a hex number following name of | |
− | + | the dri==<br /> Ver (with whitespace in between), which initializes soundPort variable.<br | |
− | + | /> | |
+ | | ||
==<br /> 2/22/91 == | ==<br /> 2/22/91 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | memoryDrv entry added to WHERE file and RESOURCE.CFG. If it's NO or no, ARM isn't used. | ||
− | + | This for the benefit of INSTALL. The -a flag is still available. Changed SCI.C and | |
− | + | RESNAME.C.<br /> | |
+ | | ||
==<br /> 2/11/91 == | ==<br /> 2/11/91 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | VGA320.DRV now returns 256 on Detect (instead of -1). | + | VGA320.DRV now returns 256 on Detect (instead of -1).<br /> |
+ | | ||
− | + | ==<br /> 1/30/91 == | |
− | + | '''Mark Wilden''' | |
− | + | Support for multiple extensions in where files added. OpenResFile added to RESNAME.C | |
− | + | which looks for resources with various extensions as well as in multiple paths.<br /> | |
MAKEVOLS reads a where file to find its resources. | MAKEVOLS reads a where file to find its resources. | ||
− | Routines common to FILELOAD and VOLLOAD moved into RESNAME. All programs default to new resource names.<br /> | + | Routines common to FILELOAD and VOLLOAD moved into RESNAME. All programs default to new |
− | SCI*.EXE defaults to using ARM, and -a turns it off. Removed useNewResNames parameter from ResNameMake, which accounts for most of the changed files. | + | |
+ | resource names.<br /> | ||
+ | SCI*.EXE defaults to using ARM, and -a turns it off. Removed useNewResNames parameter | ||
+ | |||
+ | from ResNameMake, which accounts for most of the changed files. | ||
Files changed:<br /> | Files changed:<br /> | ||
Line 925: | Line 1,403: | ||
MKVOCAB.GAM<br /> | MKVOCAB.GAM<br /> | ||
MKVOCAB.SYS for parse tools. | MKVOCAB.SYS for parse tools. | ||
− | </blockquote> | + | </blockquote.<br /> |
− | + | | |
− | |||
==<br /> 1/16/91 == | ==<br /> 1/16/91 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
Support for extended memory and XMS memory ARM types has been added. | Support for extended memory and XMS memory ARM types has been added. | ||
Line 948: | Line 1,425: | ||
==<br /> 1/14/91 == | ==<br /> 1/14/91 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
+ | |||
+ | A different way of naming resource files was added (0.v56 instead of view.000, e.g.). | ||
+ | |||
+ | Where==<br /> Ver possible, programs call ResNameMake() to create the name based on the | ||
− | + | presence of the -N flag. | |
Files changed:<br /> | Files changed:<br /> | ||
Line 977: | Line 1,458: | ||
MKVOCAB.GAM<br /> | MKVOCAB.GAM<br /> | ||
MKVOCAB.SYS. | MKVOCAB.SYS. | ||
− | </blockquote> | + | </blockquote.<br /> |
+ | | ||
− | + | ==<br /> 1/09/91 == | |
− | + | '''Mark Wilden''' | |
− | + | ARM supports multiple alternate resource memory types. In addition to VRAM, EMS support | |
− | + | was added. | |
Files changed:<br /> | Files changed:<br /> | ||
Line 994: | Line 1,476: | ||
Added EMS.S<br /> | Added EMS.S<br /> | ||
ALTRES.I. | ALTRES.I. | ||
− | </blockquote> | + | </blockquote.<br /> |
+ | | ||
+ | |||
+ | ==<br /> 1/04/91 == | ||
+ | |||
+ | '''Mark Wilden''' | ||
− | + | All references to VRAM have been moved into ALTRES.C, the alternate resource memory | |
− | + | manager. This involved changes to START.S, RESOURCE.C/.H and DEBUG.C. | |
− | + | Command line processing is now done -before- main() and indeed before InitMem(). This | |
− | + | means that any variables set by command line flags must be initialized at definition (e.g. | |
− | + | int i = 0;) to prevent them being placed in the BSS segment, which is cleared by InitMem | |
− | + | (). Changes to START.S and SCI.C.<br /> | |
+ | | ||
==<br /> 12/06/90 == | ==<br /> 12/06/90 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | UPDTOOLS.BAT now archives the old tools to OLDTOOLS.LZH. Use LHARC to extract them if | + | UPDTOOLS.BAT now archives the old tools to OLDTOOLS.LZH. Use LHARC to extract them if |
− | + | necessary.<br /> | |
+ | | ||
==<br /> 11/30/90 == | ==<br /> 11/30/90 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | DrawStatus() now takes two arguments for foreground and background color. | + | DrawStatus() now takes two arguments for foreground and background color.<br /> |
− | + | | |
− | |||
==<br /> 11/29/90 == | ==<br /> 11/29/90 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | Added InitMenu() call to main() and KRestartGame() so that theMenuBar's rectangle is | + | Added InitMenu() call to main() and KRestartGame() so that theMenuBar's rectangle is |
− | + | initialized even if no menu items are e==<br /> Ver added. This is because the status bar | |
+ | |||
+ | uses theMenuBar's rectangle.<br /> | ||
+ | | ||
==<br /> 10/31/90 == | ==<br /> 10/31/90 == | ||
− | Mark Wilden | + | '''Mark Wilden''' |
− | Fixed bug in text.c (GetLongest) that made certain text messages print with an extra blank | + | Fixed bug in text.c (GetLongest) that made certain text messages print with an extra blank |
− | + | line.<br /> | |
+ | | ||
==<br /> 10/22/90 == | ==<br /> 10/22/90 == | ||
Line 1,044: | Line 1,536: | ||
Bob H. | Bob H. | ||
− | Extended floppy disk support added. At this writing it is disabled unless '-f' option is passed to SCIVXXX. First stage support will SCAN all drives (A-F) for the required volumes. This will allow users with MULTIPLE drives of comparable capacity to use multiple floppies. This will work for SINGLE PACK games (3.5 or 5.25) only. Subsequent support will handle DUAL PACK games. | + | Extended floppy disk support added. At this writing it is disabled unless '-f' option is |
+ | |||
+ | passed to SCIVXXX. First stage support will SCAN all drives (A-F) for the required | ||
+ | |||
+ | volumes. This will allow users with MULTIPLE drives of comparable capacity to use multiple | ||
+ | |||
+ | floppies. This will work for SINGLE PACK games (3.5 or 5.25) only. Subsequent support will | ||
+ | |||
+ | handle DUAL PACK games. | ||
Files Changed:<br /> | Files Changed:<br /> | ||
Line 1,056: | Line 1,556: | ||
fileio.s - "Exists" function. Error trapped for drive scan. | fileio.s - "Exists" function. Error trapped for drive scan. | ||
− | dos.c - Relocated GetGameDisk function (from volload.c), modified to request a particular drive. Added OpenAnyDrive() function. | + | dos.c - Relocated GetGameDisk function (from volload.c), modified to request a particular |
+ | |||
+ | drive. Added OpenAnyDrive() function. | ||
fileio.h - Added various prototypes and the OAD_???? defines. | fileio.h - Added various prototypes and the OAD_???? defines. | ||
− | volload.c - Re-worked some of DoLoad to use new OpenAnyDrive call and modified | + | volload.c - Re-worked some of DoLoad to use new OpenAnyDrive call and modified |
− | + | GetGameDisk().<br /> | |
+ | | ||
==<br /> 10/12/90 == | ==<br /> 10/12/90 == | ||
Line 1,076: | Line 1,579: | ||
memmgr.h<br /> | memmgr.h<br /> | ||
kernel.sh | kernel.sh | ||
− | </blockquote> | + | </blockquote.<br /> |
− | + | | |
− | |||
==<br /> 10/11/90 == | ==<br /> 10/11/90 == | ||
Line 1,084: | Line 1,586: | ||
Mark H. | Mark H. | ||
− | Some additions from the JONES interpreter...Center Justification in printf and prioritized dialogs. | + | Some additions from the JONES interpreter...Center Justification in printf and prioritized |
+ | |||
+ | dialogs. | ||
Files Changed:<br /> | Files Changed:<br /> | ||
Line 1,091: | Line 1,595: | ||
dialog.c<br /> | dialog.c<br /> | ||
grtypes.h | grtypes.h | ||
− | </blockquote> | + | </blockquote.<br /> |
− | + | | |
− | |||
==<br /> 10/01/90 == | ==<br /> 10/01/90 == | ||
Line 1,099: | Line 1,602: | ||
Mark H. | Mark H. | ||
− | The kernel call Lock has been added to lock and unlock resources. This is to allow the application programmer to decide which resources should locked or unlocked. Two new functions selectors have been added to the Memory kernel call. They are MReadWord and MWriteWord for referencing and dereferencing addresses. | + | The kernel call Lock has been added to lock and unlock resources. This is to allow the |
+ | |||
+ | application programmer to decide which resources should locked or unlocked. Two new | ||
+ | |||
+ | functions selectors have been added to the Memory kernel call. They are MReadWord and | ||
+ | |||
+ | MWriteWord for referencing and dereferencing addresses. | ||
Files Changed:<br /> | Files Changed:<br /> | ||
Line 1,107: | Line 1,616: | ||
kerndisp.s<br /> | kerndisp.s<br /> | ||
kernel.sh | kernel.sh | ||
− | </blockquote> | + | </blockquote.<br /> |
− | + | | |
− | |||
==<br /> 09/17/90 == | ==<br /> 09/17/90 == | ||
Line 1,115: | Line 1,623: | ||
Mark H. | Mark H. | ||
− | VOCAB resources are now all unlocked, except for the character translation vocab which is about 2K. Text resources are also unlocked and the PurgeLast function in resource.c has been changed to purge resources on a prioritized schedual instead of just least recently used. This change gave back at least 40k of hunk on HQ2 with the only drawback being a slight pause when parsing a sentance or printing text. RedoStopped in animate.c was also changed to allow changes in update status (from stopped to forced or startUpd) in views that are behind Dialogs. This fix is not the most desirable way to do it, but HQ2 needs it now and substantial changes to animate would be needed to fix it right. | + | VOCAB resources are now all unlocked, except for the character translation vocab which is |
+ | |||
+ | about 2K. Text resources are also unlocked and the PurgeLast function in resource.c has | ||
+ | |||
+ | been changed to purge resources on a prioritized schedual instead of just least recently | ||
+ | |||
+ | used. This change gave back at least 40k of hunk on HQ2 with the only drawback being a | ||
+ | |||
+ | slight pause when parsing a sentance or printing text. RedoStopped in animate.c was also | ||
+ | |||
+ | changed to allow changes in update status (from stopped to forced or startUpd) in views | ||
+ | |||
+ | that are behind Dialogs. This fix is not the most desirable way to do it, but HQ2 needs it | ||
+ | |||
+ | now and substantial changes to animate would be needed to fix it right. | ||
Files Changed:<br /> | Files Changed:<br /> | ||
Line 1,125: | Line 1,647: | ||
nlvocab.c<br /> | nlvocab.c<br /> | ||
nlvocab.h | nlvocab.h | ||
− | </blockquote> | + | </blockquote.<br /> |
− | + | | |
− | |||
==<br /> 08/30/90 == | ==<br /> 08/30/90 == | ||
Line 1,133: | Line 1,654: | ||
Mark H. | Mark H. | ||
− | Added Sort kernel call that implements a simple bubble sort in C based on a scoring function passed from SCI in a Code Object. | + | Added Sort kernel call that implements a simple bubble sort in C based on a scoring |
+ | |||
+ | function passed from SCI in a Code Object. | ||
Files Changed:<br /> | Files Changed:<br /> | ||
Line 1,142: | Line 1,665: | ||
selector.new<br /> | selector.new<br /> | ||
kernel.sh | kernel.sh | ||
− | </blockquote> | + | </blockquote.<br /> |
− | + | | |
− | |||
==<br /> 08/25/90 == | ==<br /> 08/25/90 == | ||
Line 1,151: | Line 1,673: | ||
Relocated palette matching code from PAL256.c to GRAPH256.s<br /> | Relocated palette matching code from PAL256.c to GRAPH256.s<br /> | ||
− | This move was indicated by the need for greater speed.<br /> | + | This move was indicated by the need for greater speed.<br /.<br /> |
| | ||
==<br /> 8/19/90 == | ==<br /> 8/19/90 == | ||
− | '''Mark Wilden''' | + | ''''''Mark Wilden'''''' |
+ | |||
+ | Increased size of 'where' file buffer in SCI.EXE to allow for up to 64 char file name.<br | ||
− | + | /.<br /> | |
| | ||
Line 1,165: | Line 1,689: | ||
'''Bob''' | '''Bob''' | ||
− | VE256 is now under version control. All changes to this tool MUST be coordinated through Dan Foy OR Corinna. The version control directory is vol1:interp\sci\tools\ve256. In this directory is the proper batch file (vcscfg.bat) to get access to this project. Please see me if you have any questions.<br /> | + | VE256 is now under version control. All changes to this tool MUST be coordinated through |
+ | |||
+ | Dan Foy OR Corinna. The version control directory is vol1:interp\sci\tools\ve256. In this | ||
+ | |||
+ | directory is the proper batch file (vcscfg.bat) to get access to this project. Please see | ||
+ | |||
+ | me if you have any questions.<br /.<br /> | ||
| | ||
Line 1,175: | Line 1,705: | ||
CELS16M.S | CELS16M.S | ||
− | * Added code to handle remapping. Bulk of code in GetCelPointer. DrawCel NOW expects a pal(ette) argument for 0 to 7. 0 = NO MAPPING 1 - 7 selects appropriate palette Monochrome is NOT supported at this time but will be using palette data 0 | + | * Added code to handle remapping. Bulk of code in GetCelPointer. DrawCel NOW expects a |
+ | |||
+ | pal(ette) argument for 0 to 7. 0 = NO MAPPING 1 - 7 selects appropriate palette Monochrome | ||
+ | |||
+ | is NOT supported at this time but will be using palette data 0 | ||
DIALOG.C | DIALOG.C | ||
Line 1,181: | Line 1,715: | ||
KERNEL.C | KERNEL.C | ||
− | * Changed KDrawCel to pass along an optional 7th argument. If this arg is not present it passes 0 to DrawCel. | + | * Changed KDrawCel to pass along an optional 7th argument. If this arg is not present it |
+ | |||
+ | passes 0 to DrawCel. | ||
ANIMATE | ANIMATE | ||
− | * All DrawCel calls are passed the value of s_palette. Also added another element to the AniObj structure (AniObj.pal) for lastCast use. | + | * All DrawCel calls are passed the value of s_palette. Also added another element to the |
+ | |||
+ | AniObj structure (AniObj.pal) for lastCast use. | ||
SELECTOR.H | SELECTOR.H |
Revision as of 00:01, 23 December 2015
Run time system changes
In reverse chronological orde.
Ver 1.001.097 - 8/23/93
Chris Smith
fileCopy was added as a new sub-function to the kernel FileIO function. Two arguments are
required: source-file name and destination-file name. A zero return indicates success; a
non-zero return indicates failure. Possible DOS error return codes:
2 file or path not found 9 file locked 13 file specified is a directory or file is read-only or share violation 17 file can't be created 24 too many files opened 28 device is full </blockquote.
Ver 1.001.095 - 5/25/93Chris Smith
The command line argument -? (or any invalid argument) when passed to the non-debug
interpreter (SIERRA.EXE) will display the internal version stamp number associated with a
game. Additionally, an interpreter-game version mismatch or failure to version-stamp a
game will result in immediate (rather than delayed) termination of the interpreter.
Ver 1.001.094 - 5/25/93Martin Peters
Changes where made to allow transparent views. Color 254 is now used to represent that
the color in the v map should be remaped via the remapBuffer which is set by a kernel
call. The remapBuffer is loaded with either a range modification (all color in range x to
y are inc/dec by z) or a percent lumination (all colors remaped to best matched of x
persent of color.) if no remaping is specified 254 is treated as skip. A depth of
transparency was added and works on a priority depth.
Example:
a 254 color view at priority 8 is placed o==
Ver a picture with both pri of 7 and 3.if the remap has no depth specified then the remap view remaps all of the picture below
but, if a depth of 2 is specified then the view will modify the priority 7 or even pri 6
color in the vmap but not colors a 3 or even 5 will be remaped. this allow a depth of
field translation.
the call value is kernel 123 and is call with the following parms
call type
0 = remap by percent 1 = remap by index 2 = remap off if type = 0<br /.
follow by
percent illumination
[depth of field]
if type = 1<br /.
follow bystart range
end range inclusive
remap quantity (how much to add or subtract from index)
depth of fieldif type = 2<br /.
no other var.
Ver 1.001.092 - 4/27/93Chris Smith
SCI.EXE is now the only version of the interpreter with debug. It can be used to run both
file-based games and volume-based games. (Actually, there is a temporary version of
SCI.EXE called SCITESTR.EXE which is used to run the tester... it will soon/eventually be
deleted when the SCI system classes can once again manage menu bars.)
SIERRA.EXE is now the only version of the interpreter without debug. It can be used to
run both file-based games and volume-based games.
The dongle-specific version of the interpreter (BETA.EXE) is defunct. We now use
STAMPVER.EXE to encript a trackable version stamp into each prerelease version of a game
before it is sent out to beta testers, reviewers, etc. SIERRA.EXE will timeout with an
error if STAMP==
Ver has not been run against it and the corresponding game volumeresource.
Ver 1.001.091 - 4/13/93Ed Critchlow
Added support for the ARIA sound board to use EMS memory. The DoLoad function in both
fileload.c and volload.c was modified to use EMS memory if sound patch 10 is being used
(the ARIA sound patch). Also fixed a bug in memmgr.s function GetHandle which trashed bp.
Sound.c was modified in the InitSound function to check if the ARIA dri==
Ver isbeing used and if it is call DoLoad. Sci.c was changed slightly to make sure InitSound
made a call to ARM before ARM got the rest of memory.
Ver 1.001.090 - 4/13/93Chris Smith
ARM audio buffering is always used if ARM is available. The 'audioSize=nX' convention
described in version 1.001.086 reverts to 'audioSize=nK' where n is the number of K-bytes
of conventional memory to dedicate to audio buffering only if ARM is not available
(default is 4K).
An immediate 'done' cue is generated if there is a digital sample for a particular sound
number but no midi equivalent and the user is not using a DAC driver.
If a digital sample is specified for the Init of a Sound Object and the user is not using
a DAC dri==
Ver and subsequently a midi resource is specified for the Play of thatsame Sound Object with no intervening Init... the interpreter will effect a (re)Init of
the Sound Object just before executing the Play.
Ver 1.001.89Mark Wilden
More pre-SCI32 cleansing. Removed all externs, externdefs and protos (except for local
functions) from source files and put them in header files. Moved global variables from
SCI.C to their appropriate source files, and their declarations from SCI.H/.I to the
appropriate header files. Moved declarations from SAVEVARS.H/.I to their appropriate
header files, so a source file only needs to include the headers that it's interested in,
instead of all the headers that the old SAVEVARS.H/.I depended on.
Split MOUSE.S into MOUSE.C and MOUSEASM.S. Split INTRPT.S into INTRPT.C
Changed most variables that began with uppercase to lowercase. Put typedefs with struct
definitions.
Removed all warnings generated by Borland C++ and included a special symbol that BC++
needs. The interpreter is now completely BC++ compatible.
Removed unused global and local variables and functions (saving hunk and a little heap).
Put Send() inline instead of calling a function.
Removed unused parameters, such as the palette parameter to DrawPic, the mode parameter to
InsertPalette and RSetDanPalette, the realYDim parameter to ScaleDrawCel.
Fixed bug where GetCelWide, GetCelHigh, GetCelXOfs, GetCelYOfs and SetNewDim didn't
protect DI.
118 files changed.
Ver 1.001.087 - 3/29/93Chris Smith
Audio resources are now built into two distinct Volumes via MAKEMAPS.EXE: RESOURCE.SFX for
.AUD and .WAV files (typically sound effects) and RESOURCE.AUD for @*.* (typically
speech), #*.* (SOL syncs) and _*.* (BSTAR rave syncs). RESOURCE.SFX should always be
copied at install time to the current directory just as RESOURCE.000. RESOURCE.AUD may
exist in any directory on any device so long as an 'audio=' line exists in RESOURCE.CFG to
locate it.
Note: There is a new MAKEMAPS.EXE (dated 3/29/93 or later) and a new AUDDCOMP.EXE (dated
3/29/93 or later) corresponding to this version of the interpreter.
Ver 1.001.086 - 3/23/93Chris Smith
Added support for buffering audio samples to ARM memory. Currently, audio ARM allocation
is fixed at 32K with an additional 6K of conventional memory allocated for audio DMA and
IO transfers. ARM audio buffering is activated by including the where-file or cfg-file
directive 'audioSize=nX' where n is the number of K-bytes of conventional memory to
allocate in the event of ARM allocation failure (e.g. audioSize=12X).
Note: There are new audio drivers (dated 3/23/93 or later) corresponding to this version
of the interpreter.
Mark WildenAdded support for using ARM memory separately from resource management. Added functions
AltResMemAlloc() to get memory, ARMRead() and ARMWrite() to access it, ARMFree() to
release it, and ARMCritical() as a semaphore to determine if we're in ARM code. ARMRead()
and ARMWrite() allow moving memory to/from an offset in the ARM allocation.
Added Get32KEMS() and Free32KEMS() to allow access to 32K of EMS memory that will remain
at the top of the page frame and so can be accessed like normal DOS memory.
Ver 1.001.082 - 3/15/93Mark Wilden
More pre-SCI32 cleansing. Broken PMACHINE.S up into PMACHINE.C and PMACHASM.S. Broke
START.S up into START.C and STARTASM.S. Moved dongle code to DONGLE.S. Did more cleanup
as below, including culling and sorting #includes, removing unused variables and
functions, and moving externs into the correct header files. Not released.
Ver 1.001.081 - 3/11/93Chris Smith
The kernel function 'KDbugStr' will scroll text to a second monitor. It takes a single
argument: a near sring to display or 1 to select the lower text page or 2 to select the
second text page or 0 to clear the current text page.
The 'xlate=' directive can be used to display the Enlish equivalent of foreign text (or
visa-versa) to a second monitor.
If a resource can not be found or is incorrectly flagged and the user elects to abort the
game, debug (if present) will be activated before quitting.
The precedence of alternate resources relative to patches is dependent upon the location
of RESOURCE.MSG in the list of patchDir specifications. Only patches found in 'earlier' or
the same directory as the equivalent resource in RESOURCE.MSG will be used.
Ver 1.001.080 - 3/10/93Mark Wilden
The main thrust of these changes was to move some functions from assembly files to C files
for ease in porting, especially to SCI32. In so doing, I did some cleaning up, fixed a
bug or two and added some minor features.
Moved many externdefs out of .S file and into .I files where they belong. Removed
LINT_ARGS from many header files, as well as unnecessary 'extern's on function
declarations. Changed some function definitions to use ANSI argument lists instead of
K&R. Sorted many lists of include files so that duplications can be seen and to avoid
order dependencies. Header files should include all the header files they need, and no
more. Moved some typedefs from TYPES.H to their appropriate header files. For instance,
Obj is now typedefed in OBJECT.H. Passing code through BC++ let me see some local
variables that weren't being accessed, which were removed. Added some casts to remove
conflicts between signed and unsigned character comparisons, and comparing signed values
to -1.
Profiling code was made conditional on PROFILER, which reduces the size of the code when
profiling is not used (as now).
If the user misspells the name of an object he is inspecting or breaking on, he can edit
the name, instead of using memory location 0.
The send stack now shows the address of a disposed object instead of ???.
Moved some debugging functions from OBJECT.S to DEBUG.C. Moved other functions from
OBJECT.S to OBJECT.C. OBJECT.S was renamed OBJASM.S.
GetProperty and SetProperty now abort the program if an invalid property is accessed.
This change immediately made Animate() abort because it was still accessing the
nonexistent 'palette' property of View. Taking this access out will speed up Animate().
If you need to determine if a property is valid, GetPropAddr will return 0 if the property
is invalid. E_INVALID_PROPERTY was added to the error messages. MacGetPropAddr was
renamed GetPropAddrMacro so it wouldn't sound like a Macintosh function.
FreeHeap() wasn't saving DI, which sometimes crashed the program after resources were
viewed.
Ver 1.001.077Mark Wilden
Moved PanicMsgOutput from DOS.C to ERRMSG.C. Cleaned out some LINT_ARGS from ERRMSG.C.
Chris Smith
The functionality of RESOURCE.MSG/MESSAGE.MAP has been expanded to permit resources of any
type. The MAKEVOLS -m option can be used to build these special files via the MESSAGE.TXT
file (which functions identically to the RESOURCE.TXT file). The expanded purpose of
RESOURCE.MSG is to serve as a collection of language-dependent resources. Consequently,
RESOURCE.000 should contain only language-independent resources. The sequence for
locating resources is (1) patch files; (2) RESOURCE.MSG; (3) RESOURCE.000; (4) load error.
Audio and sync resources can be queued up to 10 sequences deep via the new kernel calls
(DoSync QueueSync) and (DoAudio Queue). These two calls can be made in any order or
interspersed, but there must be one call to (DoSync Start) for the first sync and one call
to (DoAudio Play) for the first audio. The (DoAudio Play) call (and optional (DoAudio
WPlay) call must follow all related (DoAudio Queue) calls. A call to (DoAudio Stop) will
flush all audios queued and (DoSync StopSync) will flush all syncs queued.
(DoSound Stop) called directly or indirectly will only stop a dac sample if the sound
number matches the sound number of the sample playing. (DoAudio Stop) can be called to
stop any dac sample playing.
Ver 1.001.076 - 2/26/93Mark Wilden
Added rename() function and (FileIO fileRename) kernel call.
Ver 1.001.073 - 1/15/93Chris Smith
.WAV resources (Microsoft WAVE audio files) are now recognized by the interpreter; .CDA
resources (CD 'Redbook' audio files) are no longer recognized as such. .WAV resources can
co-exist in a game with .AUD and .SND resources. The order of selection for a particular
'sound' number is x.AUD then x.WAV and lastly x.SND.
Base-36 audio and sync files can now be included as patches. The designations 'audio='
and 'sync=' can be used in RESOURCE.CFG to specify all of the paths to scan for audio and
sync resources.
Ver 1.001.072 - 1/15/93Chris Smith
Bug fix for the -w command-line option which existed since it was first coded but was only
unmasked by changes made in ==
Ver 1.001.071.
Ver 1.001.071 - 1/15/93Chris Smith
New kernel call 'SetQuitStr' (= 135) takes one near string argument (typically a message)
which it will display at the DOS screen when the interpreter exits. If multiple calls to
SetQuitStr are made, only the last will be honored. The maximum number of characters
displayed will be 255.
An unrecognized command-line argument (such as -?) will result in the version number of
the interpreter being displayed (and, if it is a 'debug' interpreter, a list of valid
command-line arguments). The interpreter will then exit. This feature can be used
without any other files being present.
The CD-ROM drive is located via the AUDIO= line in the where or cfg file. If no such line
exists, then it is assumed that the current drive is the CD-ROM drive.
Ver 1.001.070 - 1/15/93Chris Smith
Modified PatchDir syntax and all pertinent patch-management routines to permit more than
one path specification for locating resource patches. If PatchDir is omitted, just the
current directory will be used for locating patches; if PatchDir is specified then the
current directory will not be used for locating patches unless it is explicitly named.
Directories are scanned in PatchDir-specified order and duplicate resources are bypassed.
CD-ROM audio 'red-book' functionality is re-introduced in part into the interpreter.
Currently, the red-book dri==
Ver must be named 'AUDCDROM.DRV' and must be locatedin the same directory as the audio dri==
Ver that was loaded. If no audio dri==
Ver was sucessfully initialized then no red-book audio can be played. .
Ver 1.001.069 - 1/12/93Mark Wilden
Added capability to specify arbitrary characters in message text with \xx syntax.
Trapped | character in edit controls, since it's a control character for text output.
Added (Message MsgGetKey @vals) kernel call to retrieve the module, noun, verb, case and
sequence number of the last message retrieved by (Message MsgGet) or (Message MsgNext).
Ver 1.001.068 - 12/30/92Larry Scott
Changed end point calculation for container polygons when OPT = 0.
Ver 1.001.067 - 12/15/92Larry Scott
Put timing loops in the show styles for picture drawing. They were drawing too fast on 486
machines.
Ver 1.001.066 - 12/14/92Mark Wilden
Added new Message kernel functions:
MsgGetRefNoun, MsgGetRefVerb and MsgGetRefCase, which return the appropriate value, or -1
if the message isn't found.
MsgPush and MsgPop which save the current iterator state, so that a sequence of messages
can be displayed without interfering with a previous sequence.
Ver 1.001.065 - 12/10/92Larry Scott
Fix on avoider for container polygons. Going from one container to another. See main1.c
and test76.bat.
Ver 1.001.064 - 12/08/92Larry Scott
Changed sci.c method of getting the resource.cfg directory for Terry McHenry.
Ver 1.001.063 - 12/07/92Larry Scott
Changed getpath.c and getpath.h to fix container polygons. Also changed some code for
clarity.
Ver 1.001.063 - 12/07/92Jack Magne
Terry M. made changes to sci.c and savegame.c where saveDir is set to where the where file
is located. .
Ver 1.001.062 - 12/02/92Larry Scott
Made some changes to getpath.c for container polygons. See Main55.c and test75.bat in the
regression test suite.
Ver 1.001.061 - 11/25/92Larry Scott
Made some changes to getpath.c for container polygons. In some cases the path generated
did not extend as far as was possible. See Main54.c and test74.bat in the regression test
suite.
Ver 1.001.061 - 11/18/92Larry Scott
Changed the keyboard polling from 6 ticks to 1 tick. This was to prevent animation cycles
from going by while there was a keyboard event waiting to be posted. Along with this
change is a change to the audio drivers to intercept the keyboard events to signal the
audio dri==
Ver that a keyboard interrupt is in progress. This is because therewill always be a small window where the audio dri==
Ver can be invoked while in thekeyboard dri==
Ver If this interpreter is used without the new drivers lockups willresult.
Ver 1.001.060 - 11/11/92Ed Critchlow
Made local coordinates global for dialog box text selectio.
Ver 1.001.059 - 11/10/92Ed Critchlow
Fixed a bug caused by not setting "acc" in kernel.c onl.
Ver 1.001.058 - 11/06/92Jack Magne
Fixed a bug caused by the previous fix regarding stopUpdated, scaled views.
Ed C.
Created the ability to select words in dialog box with mouse..
Ver 1.001.043 - 10/21/92Jack Magne
Fixed a bug where a stopUpdated, scaled view fails to erase itself from the screen when
its dispose method is invoked.
Ver 1.001.042 - 9/1/92Martin Peters
Added new random number generator to math.s. It now uses a 32 bit seed and returns a 32
bit value. Changed Kernel.c to use the middle 16 bits of the 32 bit random as a
multiplier on the range of value. once the range is scaled by the random 16bits it is then
shifted left 16 to obtain a random value between 0 and (range - 1) this is added to the
low ofset to obtain a random value between low and high. Also the seed set and retrievel
is done by passing a single 16bit pointer to a 32 bit location @(array size 2) in the
first parameter to set or in the third to recieve the seed.
Ver 1.001.041 - 8/27/92Larry Scott
Added default cursor view to the interpreter. If 998.v56 exits, loop 0 cel 0 of that view
will be the default cursor. If not the default cursor will be the cursor in the dri==
Ver.
Ver 1.001.041 - 8/27/92Larry Scott
Fixed bug in getpath.c. It concerned a BAP polygon within a TAP polygon..
Ver 1.001.039 - 8/12/92Larry Scott
Added error check for returning heap at an odd address.
Ver 1.001.039 - 8/12/92Chad Bye
Changed SAVEGAME.C to use PK Implode compression instead of RLE.
Added two new kernel calls: Record and PlayBack. All sci events and mouse movements can
now be recorded and saved to a file for playback.
The format for these functions is:<br /.
(Record flag <filename>)<br /.
(PlayBack flag <filename>)
flag=TRUE turns the function on, flag=FALSE turns it off.
If a filename is not supplied, data is written to sci_evt.mac.
The macro file is a text file which can be edited if necessary.
The format for the file is:<br /.
eventPollCnt, event type, event message, event modifiers, event y, event x
There must be a blank line seperating each event.
These functions will only work in the debug interpreters.<br /.
Ver 1.001.038 - 8/11/92Mark Wilden
Upped message stack size to five entries..
Ver 1.001.037 - 8/11/92Martin Peters
Added Fix to scaling. Changes included from IBMNEXT. changes to scale.c to calculate ne
offset values within cells. Changes to CELS.S to use new scaled offset in calculating cel
positions and procedures to return current offset values. Finally changed animate to
include new calls to these procedures to scale offsets.
Ver 1.001.036 - 8/11/92Mark Wilden
Support ME 4 message file format. Support reference fields, where one message points to
others.
Ver 2.000.014 -Jack Magne
Improved operation of the SetCursor call that restricts the cursor to a rectangular area.
.
Ver 2.000.013 -Martin Peters
Modified animate to scale the x and y offsets of scaled cels so they are drawn relative to
a proportional x and y origin point in the cel. This removes the hopping look for cels
with movers.
Ver 2.000.011 - 7/27/92Chad Bye
Added text codes to support multi-color and multi-font text messages. Two new kernel calls
were added for this: TextColors and TextFonts. TextColors and TextFonts are used to
initialize the colors and fonts that can be used in text messages. The format for the new
functions is:<br /.
(TextColors <color 0> <color 1> <color 2> ...)<br /.
(TextFonts ...)
The following text codes can now be inserted in any string:<br /.
|c#| - Text following this code will be color # in the text colors table.<br/.
|c| - Text following this code will be the default window color.<br /.
|f#| - Text following this code will be font # in the text fonts table.<br/.
|f| - Text following this code will be the default window font.<br /.
|| - Prints the character '|'
Changed ERRMSG.C. There is no longer an ErrMsg function. Panic and RAlert have both been
changed to accept a message number (which is loaded from INTERP.ERR) instead of a string.
These functions also have a variable length argument list, so formatted strings can still
be used.
Added many error messages to INTERP.ERR because of the above change.
Ver 1.001.029 - 6/1/92Chris Smith
Audio samples can now follow the same NOUN-VERB convention as Msg resources and/or follow
the standard resource-naming convention (e.g. 123.AUD). A makevols-like utility named
MAKEMAPS.EXE is used to combine individual audio samples into room-specific .MAP resources
which are then built into volumes in the same manner as all other resource types (*.AUD
samples are built into 0.MAP). RESOURCE.AUD is generated in the process which can be
split across floppies and recombined at install-time just as RESOURCE.000.
CFG/WHERE files now recognize the individual lines audioSize=?K (default is now 8K),
audioDisk=YES or NO (default is YES; specify NO if your game does not stream audio from
disk -- that will save you half-a-K of hunk) and audioPort=xxx (default is 220 hex; this
line only has meaning to Sound Blasters). The parameters 'size=', 'disk=' and 'port='
(which use to be on the audioDrv= line) are no longer recognized.
Ver 1.001.028 - 6/1/92Mark Wilden
Fixed ERRMSG.C to allocate larger buffer for preloaded error messages.
Ver 1.001.027 - 5/29/92Mark Wilden
Preload error message for ARM checksum failure to avoid memory allocation while displaying
it.
INTERP.ERR changed.
5/28/92
Larry Scott
Added new function to PalVary kernel call. PALVARYTARGET will allow a custom palette to be
inserted into the target palette.
The DrawControl routine now looks at the NoShowBits flag instead of the PicNotValid
flag.
Ver 1.001.026 - 5/27/92Mark Wilden
ARM now keeps its pageMaps in hunk instead of heap, saving even more heap. Code was
generalized to remove duplication, which saves hunk.
5/28/92
Mark Wilden
Changed name of KCheck() to KResCheck().
5/26/92
Larry Scott
Changed kernel call to KPicNotValid to set NoShowBits instead of PicNotValid. Also
KDrawCel now looks at NoShowBits to determine if ShowBits is to be called. The SCI
programmer show not be modifying PicNotValid.
Ver 1.001.025 - 5/22/92Mark Wilden
Improved ARM checksum failure message. If ARM detects that the data it retrieves from
EMS/XMS/Extended memory is not the same that it wrote, it aborts with a message telling
the user to run Install and choose not to use his extra memory.
INTERP.ERR changed.
Ver 1.001.024 - 5/20/92Mark Wilden
Fixed ARM bugs introduced by Jeff in the MASM 6.0 conversion and Tom Shimada in
conditional compile for NEC9801. The first reversed an error condition when running with
no memory manager. The second didn't store data when using XMS (as with QEMM with the
FR=NONE parameter).
Made ARM pagemaps dynamic, which will save at least 2K of heap.
Removed VRAM, which will save another K.
Generalized some ARM code, which will help hunk.
Made ARM checksumming always on. If ARM detects that the data it stored is bad, it will
Panic out, instead of letting things proceed with the bad data.
Ver 1.001.023 - 5/15/92Larry Scott
Changes to allow PalVary work for save, restore and restart.
Ver 1.001.022 - 5/12/92Mark Wilden
Fixed several bugs in FILEIO.S where drive letters were assumed to be in lower case and
where RGetFreeSpace didn't return default drive space when passed 0.
Ver 1.001.021 - 5/11/92Jack Magne
Added a special effects cursor that can be used for various effects like magnification and
see-through.
Ver 1.001.021 - 5/11/92Larry Scott
Added code to make PalVary work under the ega640.drv dri==
Ver The change willalways happen instantly under EGA. Also added the variable NumberColors that's set by the
video driver.
Ver 1.001.021 - 5/11/92Chris Smith
Added three new where/config file arguments that are placed on the audioDrv= line:
size=nK (default n is 4) disk=x (default x is YES which means audio samples can be played
directly from disk; NO will cause the audio drivers to purge direct-disk play support,
saving about 1K memory space) port=x (default is 220 hex).
Added static buffer to audio support that does not span a 64K boundary so that continuous
DMA can be utilized for sample playback. The actual buffer allocated depends on the size=
argument as described above.
Added kernel function KCheck (works just like KLoad but returns TRUE/FALSE instead of
handle if the specified resource(s) can be located -- no read will take place).
Ver 1.001.021 - 5/4/92Larry Scott
Added debug commands k and K which break on a specific kernel call. k is break once and K
is a sticky break. When you enter k or K you will be prompted for the specific kernel call
number. i.e. 113 is KPalVary.
Ver 1.001.020 - 5/5/92Corey Cole
Fixed a bug in script.c which caused crashes in Mixed-Up Mother Goose and potentially
corrupted memory in other games.
Ver 1.001.020 - 5/4/92Larry Scott
Expanded the functionality of CheckFreeSpace. See below for a description of the kernel
call:
<syntaxhighlight lang="c">
if only path argument
{ Return boolean, there is enough free space on the disk in 'path' to save a game. }else
{ If Arg2 = 0 { Return the amount of space needed to save the game in K } if Arg2 = 1 { Return the amount of free space in K up to 32Meg } }</syntaxhighlight.
Ver 1.001.020 - 5/4/92Larry Scott
A bug fix was made to MergePoly in getpath.c the bug fixes regression test #101 in the set
of regression tests for getpath.c.
Ver 1.001.016 - 4/29/92John Magne
This version includes Corey Cole's new fill routine which is designed to save heap
storage. Also Larry's Pal Vary scheme has been made more accurate o==
Ver short timeintervals. I have included fixes for the polygon based avoider and the ShakeScreen kernel
call. Chris Smith has fixed a bug that resulted in sampled sound calls returning
false information to the apps programmers.
Corey also eliminated the "Brush" routine in DrawPic, which will now give a PANIC error
message, and made changes to the debug routines to reduce stack usage (including some
changes made by Larry).
Ver 1.001.015 - 4/24/92John Magne
This version includes Chris Smith's fix to allow volume based interpreters to work
with message files. Dan Foy has fixed a bug that caused the interpreter to trash views
saved with q3 compression.
Ver 1.001.014 - 4/21/92John Magne
Pal Varying scheme will now work correctly when running the interpreter with the -p option
in effect.
Ver 1.001.013 - 4/21/92John Magne
Fixed bugs to allow the Pal Varying scheme to work smoothly on room changes.
Ver 1.001.012 - 4/20/92John Magne
Fixed minor bug in the Brush sub function of routine of DrawPic. Was causing occasional
lockups on room changes.
Ver 1.001.011 - 4/17/92John Magne
Fixed a bug in midi.s that was resulting in writing data to memory reserved for the
operating system. This was causing various QEMM exceptions. We are still using the pre
Masm 6.0 version of midi..
Ver 1.001.010 - 4/15/92John Magne
Retrieved the last version of midi.s and midi.i that used Masm 5.1 to attempt to remove
bugs created by the conversion to Masm 6.0.
4/6/92John Magne
Fixed problem that resulted in overlays being drawn backwards.
4/1/92Mark Wilden
Added MsgSize function to Message kernel call. The calling syntax is<br /.
(= size (Message MsgSize module noun verb case sequence))
The function returns the size of the buffer needed to store the message, including thetrailing NULL. A blank message returns 1. A missing message returns 0. Stage directions
(all caps inside parentheses) are included in the length
Fixed Panic message.
3/15/92John Magne
Added support for the dynamic scaling of views. Thus views can be sized depending upon
their position on the screen or under direct control of the programmer.
3/3/92Jeff Stephenson
"Make"ing the system now does a number of version-control related tasks. First, it creates
the file 'info.c' including the VCSID of the person making the interpreter, the date/time
of the make, the version number, the path of the directory in which the make is executing,
and a comment from the file .\comment\comment. Make is then invoked recursivly after this
is created and since all interpreters depend on this file, all interpreters are then
rebuilt.
Once the interpreters have been successfully built, all version controlled files in .\vcs
are stamped with the current version number. While this takes some time, it allows the
source for any module to be retrieved by version number.
Two utilities are required for this process and should be in your execution path (they are
present in i:\interp\sci\ibm):
inc_it: Increments the last three digits of a dotted version number in a specified file.
inc_it version.dat
increments the version numberin 'version.dat'.
oneline: Writes its parameters to stdout as a single line. Any string bracketed by '@' is interpreted as the name of a file which is to be included in the output line. Thus, if
the file 'test.dat' consisted of the string "is a", the command
oneline This @test.dat@ test
would produce
This is a test
on stdout. The '\' character works as an escapecharacter, allowing an '@' to be included, if necessary.
Borland C++ source code for these utilities is in i:\interp\sci\tools\utils.
The assembly language preprocessor for Intel code (as.exe and ap86.exe) are now obsolete.
All assembly source code for the interpreter has been converted to use the MASM 6.0
structured assembly constructs, which are far superior.
**** PLEASE use these constructs rather than labels and jumps! ****
If you don't have a copy of MASM 6.0, get one from Larry.
8/08/91Chris Smith
Restructured map file layout: All resource entries are ordered by type and subordered by
id; bits pertaining to type are removed from each individual entry allowing ids to ranged
up to 65536; index table at head of map file indicates where each resource type group
starts -- its format is 1-byte resource type followed by 2-byte offset from start of map
file to first resource of that type -- indexes are also sorted by type but can not be
indexed into since gaps may arise from no resources of a specific type; the last index is
followed by a byte of 255 and 2-bytes of map file size (so that a specific resource entry
can be found by binary searching its type group).
Auto-patch table generation: A table of (byte)types/(word)ids is generated upon game
start or restart so that resource patch search begins with a memory-resident table look-up
rather than a disk(disc in the worse case of CDROM) search. A .cfg file entry of
patchDir=directory indicates where feed for the table generation may lie (no patchDir
entry defaults to current directory).
7/11/91Mark Wilden
Added MSG resource type. These are used in text versions of games to store text messages
that are mirrored in sync and audio files in CD versions. Added<br /.
GetMessage(int module, int talker, int msg, char* buffer)
to access this resource from the interpreter and a KGetMessage() wrapper to access fromSCI.
5/27/91Pablo Ghenis
Internal rearrangement of functions and variables in SCI modules (both C and assembler) in
order to improve code reusability, size and speed (yes. there IS a free lunch!). This set
of changes affects i:\interp\sci, which contains programs SCI and MAKEVOLS. To get the
full benefit of these changes, they should also migrate as soon as possible to i:\interp
\sci\sc and i:\interp\sci\parscomp.
The following conventions are now observed (anyone linked with the generation and
compilation of non-compliant code will be summarily executed!):
- There are no extern declarations within .c or .s files, only within .h and .i files.
There are no duplicates.
- Each public symbol (variable or function) is declared in a header file with the same
name as the source file that provides it. For example, Panic is a procedure provided by
start.s, so it is externally declared in start.i (for .s files to include) and also in
start.h (for .c files that invoke Panic).
This will make it easier to find things in the interpreter directory, since all one has todo is type:<br /.
GREP foo *.h *.i
to find out where "foo" is defined, since the source file is guaranteed to have the samename as the header file that declared it.
- All symbols that exist in the standard C header files (ie. those provided by Microsoft
C) are declared in a file that has the same name. For example, our SCI directory contains
a file named STDLIB.H that contains the prototype for atoi(strptr s), since this is where
atoi is found in the standard header file set. To comply with (2) there is now a stdlib.c
that resolves all externals declared in stdlib.h
- This will make it much easier to share source modules among the different tools we use,
most of which include the standard header files (except the interpreter!). For example, if
we now include our own version of string.h we are guaranteed NOT to redefine symbols
provided by other header files, unlike the previous situation where the order of inclusion
was critical to make sure that we "won" in case of redefinitions.
- All symbols that are local to a module are now declared "static near", which makes code
smaller AND faster. All external symbols are declared global. Every symbol is explicitly
tagged as EITHER global OR static near, to improve readability. The interpreter is now
about 2300 bytes smaller, and a bit faster as well.
- All programs now compile and link with ZERO warnings in i:\interp\sci. This will prevent
new warnings from being overlooked, since there are not supposed to be any.
3/14/91Mark Wilden
Updated from foreign language interpreter. Changes involved calling StrSplit where
appropriate, different parameters to TextSize, StrSplit and GetFarText, adding NEC9801
conditional code.
Files changed:
DEBUG.C
DIALOG.C
FARDATA.C
KERNEL.C
LANGUAGE.C
MENU.C
TEXT.C
WINDOW.C
KERNDISP.S
FARDATA.H
KERNEL.H
LANGUAGE.H
TEXT.H.
STRSPLIT.C/.H was renamed LANGUAGE.C/.H. </blockquote.
3/1/91Mark Wilden
soundDrv entry in WHERE and RESOURCE.CFG enhanced to allow a hex number following name of
the dri==
Ver (with whitespace in between), which initializes soundPort variable.
2/22/91Mark Wilden
memoryDrv entry added to WHERE file and RESOURCE.CFG. If it's NO or no, ARM isn't used.
This for the benefit of INSTALL. The -a flag is still available. Changed SCI.C and
RESNAME.C.
2/11/91Mark Wilden
VGA320.DRV now returns 256 on Detect (instead of -1).
1/30/91Mark Wilden
Support for multiple extensions in where files added. OpenResFile added to RESNAME.C
which looks for resources with various extensions as well as in multiple paths.
MAKEVOLS reads a where file to find its resources. Routines common to FILELOAD and VOLLOAD moved into RESNAME. All programs default to newresource names.
SCI*.EXE defaults to using ARM, and -a turns it off. Removed useNewResNames parameterfrom ResNameMake, which accounts for most of the changed files.
Files changed:
DOS.C RESOURCE.H
RESNAME.C
VOLLOAD.C
FILELOAD.C
SCI.C
DEBUG.C for SCI*.EXE
MAKEVOLS.C
MAKEVOLS.MAK for SCI.EXE
SC.DEC UPDATE.C
VOCAB.C
SC.H
INPUT.C
OBJCODE.C
CLASS.C
TEXT.C
SC.C for SC.EXE
VC.C
DC.C
CTC.BAT
GC.BAT
MKVOCAB.GAM
MKVOCAB.SYS for parse tools. </blockquote.
1/16/91Mark Wilden
Support for extended memory and XMS memory ARM types has been added.
Files changed:
ALTRES.C.
Files added:
XMS.S
EXTMEM.S
1/14/91Mark Wilden
A different way of naming resource files was added (0.v56 instead of view.000, e.g.).
Where==
Ver possible, programs call ResNameMake() to create the name based on thepresence of the -N flag.
Files changed:
FILELOAD.C
DEBUG.C
RESOURCE.H
SCI.C
VOLLOAD.C
RESOURCE.C DOS.C
RESNAME.C (added) for SCI*.EXE;
UPDATE.C
VOCAB.C
TEXT.C
OBJCODE.C
CLASS.C
INPUT.C
SC.C
SC.H
SC.DEC for SC.EXE;
MAKEVOLS.C
VC.C, DC.C
CTC.BAT
GC.BAT
GC.LSP (!)
MKVOCAB.GAM
MKVOCAB.SYS. </blockquote.
1/09/91Mark Wilden
ARM supports multiple alternate resource memory types. In addition to VRAM, EMS support
was added.
Files changed:
ALTRES.C
VRAM256.S
RESOURCE.H.
Added EMS.S
ALTRES.I. </blockquote.
1/04/91Mark Wilden
All references to VRAM have been moved into ALTRES.C, the alternate resource memory
manager. This involved changes to START.S, RESOURCE.C/.H and DEBUG.C.
Command line processing is now done -before- main() and indeed before InitMem(). This
means that any variables set by command line flags must be initialized at definition (e.g.
int i = 0;) to prevent them being placed in the BSS segment, which is cleared by InitMem
(). Changes to START.S and SCI.C.
12/06/90Mark Wilden
UPDTOOLS.BAT now archives the old tools to OLDTOOLS.LZH. Use LHARC to extract them if
necessary.
11/30/90Mark Wilden
DrawStatus() now takes two arguments for foreground and background color.
11/29/90Mark Wilden
Added InitMenu() call to main() and KRestartGame() so that theMenuBar's rectangle is
initialized even if no menu items are e==
Ver added. This is because the status baruses theMenuBar's rectangle.
10/31/90Mark Wilden
Fixed bug in text.c (GetLongest) that made certain text messages print with an extra blank
line.
10/22/90Bob H.
Extended floppy disk support added. At this writing it is disabled unless '-f' option is
passed to SCIVXXX. First stage support will SCAN all drives (A-F) for the required
volumes. This will allow users with MULTIPLE drives of comparable capacity to use multiple
floppies. This will work for SINGLE PACK games (3.5 or 5.25) only. Subsequent support will
handle DUAL PACK games.
Files Changed:
sci.c - Parsing of command line switch.
declaration of variable "oadAccessMode".sci.h - EXTERN statement for oadAccessMode.
fileio.s - "Exists" function. Error trapped for drive scan.
dos.c - Relocated GetGameDisk function (from volload.c), modified to request a particular
drive. Added OpenAnyDrive() function.
fileio.h - Added various prototypes and the OAD_???? defines.
volload.c - Re-worked some of DoLoad to use new OpenAnyDrive call and modified
GetGameDisk().
10/12/90Mark H.
MemoryInfo function selector added called TOTALHUNK. Also system global called hunkAvail.
Files Changed:
kernel.c
memmgr.s
memmgr.h
kernel.sh </blockquote.
10/11/90Mark H.
Some additions from the JONES interpreter...Center Justification in printf and prioritized
dialogs.
Files Changed:
printf.c
dialog.c
grtypes.h </blockquote.
10/01/90Mark H.
The kernel call Lock has been added to lock and unlock resources. This is to allow the
application programmer to decide which resources should locked or unlocked. Two new
functions selectors have been added to the Memory kernel call. They are MReadWord and
MWriteWord for referencing and dereferencing addresses.
Files Changed:
kernel.c
kernel.h
kerndisp.s
kernel.sh </blockquote.
09/17/90Mark H.
VOCAB resources are now all unlocked, except for the character translation vocab which is
about 2K. Text resources are also unlocked and the PurgeLast function in resource.c has
been changed to purge resources on a prioritized schedual instead of just least recently
used. This change gave back at least 40k of hunk on HQ2 with the only drawback being a
slight pause when parsing a sentance or printing text. RedoStopped in animate.c was also
changed to allow changes in update status (from stopped to forced or startUpd) in views
that are behind Dialogs. This fix is not the most desirable way to do it, but HQ2 needs it
now and substantial changes to animate would be needed to fix it right.
Files Changed:
animate.c
resource.c
nlparse.c
nlsaid.c
nlvocab.c
nlvocab.h </blockquote.
08/30/90Mark H.
Added Sort kernel call that implements a simple bubble sort in C based on a scoring
function passed from SCI in a Code Object.
Files Changed:
selector.h
kernel.c
kerndisp.s
selector.new
kernel.sh </blockquote.
08/25/90Bob
Relocated palette matching code from PAL256.c to GRAPH256.s
This move was indicated by the need for greater speed.<br /.
8/19/90'Mark Wilden'
Increased size of 'where' file buffer in SCI.EXE to allow for up to 64 char file name.<br
/.
8/14/90Bob
VE256 is now under version control. All changes to this tool MUST be coordinated through
Dan Foy OR Corinna. The version control directory is vol1:interp\sci\tools\ve256. In this
directory is the proper batch file (vcscfg.bat) to get access to this project. Please see
me if you have any questions.<br /.
8/4/90Bob
The following files are affected by changeable view palettes
CELS16M.S
- Added code to handle remapping. Bulk of code in GetCelPointer. DrawCel NOW expects a
pal(ette) argument for 0 to 7. 0 = NO MAPPING 1 - 7 selects appropriate palette Monochrome
is NOT supported at this time but will be using palette data 0
DIALOG.C
- Added an immediate 0 to the only DrawCel call in this file.
KERNEL.C
- Changed KDrawCel to pass along an optional 7th argument. If this arg is not present it
passes 0 to DrawCel.
ANIMATE
- All DrawCel calls are passed the value of s_palette. Also added another element to the
AniObj structure (AniObj.pal) for lastCast use.
SELECTOR.H
- Added s_palette as selector 91
DRAWCEL.H
- changed prototype