| www.cortex.salk.edu | July 05, 2008 |
|
:: Style
|
Version 5.9.6 (c596.zip) has been uploaded. It contains the following changes:
The VCortex 2.2 release of the Windows 2000/XP version of Cortex has been uploaded to the Cortex web site (www.cortex.salk.edu). Fixed some bugs that were found in the VCortex 2.1 code:
The Frequently Asked Questions page of the CORTEX website is now complete. Use the FAQ link on the left menu to view the topics. The VCortex 2.1 release of the Windows 2000/XP version of Cortex has been uploaded to the Cortex web site (www.cortex.salk.edu).
New features:
The Cortex web site has been modified to be compatible with Mozilla-based browsers (Netscape, Mozilla, Firefox), in addition to Microsoft's Internet Explorer. The VCortex 2.0 release supports Win2000 and WinXP, and
requires the PCI-DAS1602/12 data acquisition board
A new device driver, cdas16.sys, was written to control the timing and to collect data. Please refer to the VCortex User's Manual for installation instructions and more information. The VCortex 2.0 code is based on VCortex 1.1. Note, however, that Win95/98 and the ISA-based boards are not supported by this release, so please use VCortex1.1 if you have these boards or operating systems. Fixed some bugs that were found in the base 1.1 code:
Added Play mode (Play Alone and Play With Conditions). Play mode can be found under the Tools menu. More information about Play mode can be found in sections 5.5.3 and 5.5.4 of the VCortex User's Manual.
Added touchscreen support. Like the DOS version of Cortex, the code was written for and tested on a Microtouch touchscreen. Refer to the VCortex User's Manual for more details. Added installation of the VCortex programs via InstallShield. There is a separate Installation package for the send programs and the receive program. Refer to section 3.6 of the VCortex User's Manual for more information. Fixed some bugs that were found in VCortex 1.0.
The new, improved Cortex web site goes online!! This fantastic web site was implemented by Eric Boulden, who joined the Cortex Team a few months ago. In addition to the usual Documentation and Download pages, there are now working pages for the submission of Bugs and Suggestions. The Search page allows you to search the Cortex web site. The Discussion board allows you to post and reply to questions about Cortex.
Note: The userid/password list from the previous A beta version of the Windows version of Cortex, VCortex, has been uploaded. It runs on Windows 95 and 98, using the ISA-based data acquisition cards. Download the program files (vcortex.zip) from the "Downloads" page of the Cortex web site. Download the VCortex User's Manual from the "Documentation" page. Version 5.9.5 (c595.zip) has been uploaded. It contains the following changes:
Fixed a bug in the analog (EOG and EPP) data collection of the CIO-DAS1602/12 board. Unlike the old Compuboards, this board has an onboard buffer that stores the analog data. Since the old boards did not have this capability, there was not code to clear this buffer at the beginning of each trial. Therefore, it was noticed that this board had a leftover data point at the end of each trial. Changed the code so that this buffer is cleared before each trial begins. Fixed a bug in the analog (EOG and EPP) data collection of the PCI-DAS1602/12 board. By default, the board is set to 8 differential analog channels. Cortex expects the analog data to be set up as 16 single-ended channels. Since the PCI board does not have any jumpers, this needed to be set through software. By default, the board is shipped set at bipolar and 8 differential channels. Even though Cortex expects the analog data to be "bipolar and 16 single-ended channels", created optional parameters for the DEVICE line of the Cortex.cfg file to set them. Now the user can configure the PCI-DAS1602/12 board, so that it is bipolar vs. unipolar, and single-ended vs. differential. If these optional parameters are omitted, the board will be initialized to bipor and single-ended. Fixed a bug in the DEVxxx() series of functions, which was introduced in version 5.9.4. The problem would occur if the user had set the DEVICE line to COMPUBOARD in the Cortex.cfg file. If COMPUBOARD was instead split out into two DEVICE lines as DASH16 and PIO24, then the DEVxxx() functions would work. The bug was quite noticeable since the DEVoutp() , DEVinp(), DEVoutpw(), and DEVinpw() functions would not read or write digital I/O with the DEVxxx() functions. This has been fixed, so now COMPUBOARD will work as a DEVICE line. Fixed bug in the DirectX receive program (DXrecv.exe). If two items are defined as the same color in the items file, and appear in the same condition, only one lut index was being used for both items. What should happen is that each item is assigned a unique index into the lut, so that its color can be changed with GcolorABS(ITEM_POSlut_index(), r,g,b). This problem was occurring since Microsoft DirectX only uses one entry in the LUT if the same color is being used more than once. In a related issue, if the same item was used in multiple testscreens, GcolorABS(ITEM_POSlut_index(), r,g,b) would only change the color if the first occurrence (testscreen) was given as the parameter to ITEM_POSlut_index(). Changed the code so that this will not be the behavior of Microsoft DirectX in Cortex. In version 5.9.4, a change was made so that the background will remain constant between trials if the user configures this feature in the GRAPHICS_SPECS line of Cortex.cfg. Extended this feature so this Cortex.cfg setting will also cause the background to remain constant when Play is exited as well. Added a new serial function, Serial_SetPortHardware(), to the 32-bit versions of Cortex. This function allows the user to change the COM ports address to a non-standard IRQ and/or address. Please refer to the online Cortex Function Reference for more information about the function. Added a new function, getDataFileName(), which allows the user to obtain the name of the output Cortex data file from inside the timing file. Please refer to the online Cortex Function Reference for more information about the function. Added a set of new functions to return various items from the header of the Cortex output data file. Also, added some functions to set the response codes inside Cortex. The new functions added were: set_response(), set_expected_response(), set_response_error(), set_trial_type(), get_repeat_num(), get_trial_type(), get_eye_storage_rate(), and get_kHz_resolution(). Please refer to the online Cortex Function Reference for more information about the functions. Created a 32-bit single-computer DOS version of Cortex, which does not display graphics. The serial communications functions and analog/digital data capabilities still work, so this version can be used when graphics are not necessary, or when the graphics are displayed by some other means. The new program is called "sgl32.exe", and can be found in the \remote32 directory of the Cortex release. Added new functions to randomly change the LUT entries, based on a gamma table of values. The new functions are called: CTLrandom(), SetGammaRedValue(), SetGammaGreenValue(), and SetGammaBlueValue(). These functions are only available in the 32-bit versions of Cortex using the DirectX receive program. They were not added to the online function reference manual since they were added for a user with a very particular paradigm. I can't imagine anyone else needing these functions, but I added them to the release so that I wouldn't have to make a custom build. Updated the Cortex User's Manual to include the two-computer version of Cortex, current hardware/software requirements, installation instructions, compilation instructions, and a troubleshooting section containing answers to the most frequently asked questions. A copy of this new document can be found in the \docs directory of the release, and on the Cortex web site. Version 5.9.4 (c594.zip) has been uploaded. It contains the following changes:
Added support for the PCI-DAS1602/12 board. Refer to the document entitled "Using the PCI-DAS1602/12 board with Cortex" on the Cortex web page for details on how to use the board. Added an optional parameter to the TOUCH_SCREEN line in cortex.cfg to allow the user to specify whether or not the Y value from the touchscreen should be inverted. If the user does not specify this parameter, the default behavior is to *not* invert the y. Note: This change has only been implemented for the two-computer version of Cortex. For the other versions, this parameter is not used. If the invert_y parameter is specified in the cortex.cfg file, then the store_touch_data parameter should be specified as well. Added an optional parameter to the DEVICE line of cortex.cfg, so that the user can specify whether or not the PIO24, PIO96, and the PIO24 portion of the Compuboard, will be initialized by Cortex to Port A in, Port B out, and Port C split. If the user specifies NO_INIT for the parameter, then the user will be able to issue timing file commands that initialize the board. Refer to the document (written by Andy Mitz) on the Cortex web site entitled "Setting up Cortex for Recording Many Spike Channels". Added a new movie function, for use in timing files, called "Gmovie_one_time()". This function will play the movie one time through, rather than according to the timer. Added an optional parameter to the GRAPHICS_SPECS line in cortex.cfg, to allow the user to specify whether or not the background color stays on the screen even after the set of trials has ended. In prior versions of Cortex, the screen remains the background color between trials, but once the trials are over, it goes to black. Since the 1's complement operator (~ tilde) did not compile in the CSS, even though it is listed in the math functions, Andy Mitz suggested adding the following macro INV(x) to the css_inc.h file. Then, in timing files, the user can write: b = INV(a); to take the 1's complement of the variable "a", for example. The DirectX receive program (DXRecv.exe) was not written to accept the command line options to change comport and baud rate like the programs rvesactx.exe and wcsend.exe. Added that functionality into DXrecv.exe. In order to use the command line arguments, the user must change them in the Properties page of the Dxrecv.exe shortcut on the desktop. The parameters should be added onto the "Target:" line. For example, the "Target:" line would read: c:\c594\wcortex\dxrecv.exe COM2 @115200 Note that there are no spaces between the COM and the 2, and no spaces between the @ and the baudrate. If these command line arguments are omitted, the default values are a comport setting of COM1 and a baudrate of 115200. Note: For Win2000 users, the shortcut must be created from the directory \dxsource\dxrecv\release\dxrecv.exe for the command line arguments to work properly. If this is done, then the working directory of the dxrecv.exe program will be \dxsource\dxrecv\release, not \wcortex. Fixed a bug in the Cortview.exe utility. Now, when the user chooses to show the codes only, it does not display their meanings, too. Added the C time() and clock() functions for use in timing files. The time() standard C function will allow the user to get the number of seconds since Jan 1, 1970. This value can be used to seed the random number generator, for instance. The C function clock() returns the number of clock ticks of elapsed processor time. The returned value is the product of the amount of time that has elapsed since the start of a process and the value of the CLOCKS_PER_SEC constant. The time in seconds is approximated by dividing the clock return value by the value of the CLOCKS_PER_SEC constant. Added the CLOCKS_PER_SEC value in css_inc.h. For the Watcom and Microsoft C compilers, the value of CLOCK_PER_SEC is 1000. Note: In MS-DOS, clock returns the time elapsed since the process started. This may not be equal to the actual processor time used by the process. Initialized CODEbuf[], ISIbuf[], EOGbuf[], and EPPbuf[] to zero for each trial. Previously, the CODE_ISIsize, EOGsize, and EPPsize were just set to zero, and the arrays were not reinitialized. Version 5.9.3 (c593.zip) has been uploaded. It contains the following changes:
For the DirectX version of the "receive" program (in two computer Cortex), added the ability to play AVI, MPEG, and QuickTime movies, in addition to the standard Cortex (CTX) image file format based movies. The type of movie file is determined by the file extension. That is, to be processed correctly: AVI files must have the extension .AVI; MPEG files must have the extension .MPG; and QuickTime files must have the extension .QT or .MOV. All other movie file extensions are assumed to be the standard Cortex (CTX) bitmap type. Therefore, this code change should be transparent if you continue to just use CTX type movies. Other details:
Added a parameter to the TOUCHSCREEN line of cortex.cfg so that the EPPbuf and CODE/ISIbuf buffers are not filled in with touchscreen data unless the user wants that to be. Now, the data can be stored selectively into the EPPbuf, CODE/ISIbuf, both buffers, or neither buffer. See the comments in the Cortex.cfg file for details about the TOUCHSCREEN parameter. Please note that the default case is to store the data in both places, so current users do not have to alter their cortex.cfg file if they want the default behavior. Changed so that LUT:View/Change pop-up menu will display the LUT entries as indexed from 0 through 255, instead of from 1 through 256. Changed so that a larger stack size is available to the Cortex compiler (CSS) for the 32-bit version of Cortex (REMOTE32). This will allow larger array sizes to be used in timing files. Web page news: The Cortex discussion group is back online! A new server computer is being used for the discussion group. In the process of setting up the group on the new server, some users and messages may have been lost. Please feel free to join the group and post your questions. Version 5.9.2 (c592.zip) has been uploaded. It contains the following changes:
For the DirectX version of the "receive" program (in two computer Cortex), added the capability to play sound. The sound component of the DirectX receive program has more functionality than the DOS version of the sound code. For example, DirectX supports the overlaying of multiple sounds, the ability to continually loop a sound, the individual control of the volume of each sound, and the ability to stop each sound one at a time. DirectX also allows the user to specify what kind of speakers are being used, and also the orientation of the stereo speakers, in order to optimize the sound produced. A new SOUND parameter in the CORTEX.CFG file can be used to customize these features. For complete details regarding installation, interface, and features of the sound code with the DXRECV.EXE program, please read the document "Using Sound with Dual Computer Cortex" in the \DOCS\ directory of the Cortex distribution or in the Documentation section of the Cortex web page. Fixed a bug in Cortex where the data file was not being closed properly, resulting in the error "no more file handles". Created an environment variable (CORTEX_ESC_OPT) to be used to specify whether to use an alternate keyboard escape sequence to terminate two computer cortex. If the environment variable is not set or is set to 0, then the default SHIFT+ALT+CTRL will be used. If the environment variable is set to 1, then SHIFT+ALT+CAPSLOCK will be used. Since CAPSLOCK toggles between ON and OFF, it may be necessary to hit the escape sequence twice to actually terminate the programs. The environment variable must be set, using "SET CORTEX_ESC_OPT=0" (or =1) from the DOS prompt or in AUTOEXEC.BAT prior to running RVESACTX.EXE and WCSEND.EXE. Note that keyboard escape sequences can not be used to terminate the DirectX receive program. Fixed a bug in DXrecv.exe whereby the color was not being set properly in GcolorABS(). Added command line parameter to determine the behavior of setting and realizing the color palette in the Scitech MGL version of the receive program (RVESACTX.EXE). When a color palette change is made in a timing file using the GcolorABS() function, it needs to be followed by a call to the Gflush() function to actually appear. If Gflush(1) is called, the color palette change occurs during the next vertical refresh of the display. If Gflush(0) is called, the color change occurs immediately, perhaps causing tearing of the display. Since tearing appears as a distracting and variable artifact on the screen, the user is forced to use Gflush(1). When changing only one color, this is fine. However, if multiple color palette changes are desired during a single vertical refresh, it was not possible. Therefore, the code was changed so that if multiple GcolorABS() or GcolorREL() calls were made in a timing file, the color changes will be accumulated. When a Gflush(1) was finally called, all the color changes will be realized. To run the RVESACTX.EXE program with this new behavior, you must supply a new command line argument (%1) when you start RVESACTX.EXE. That is, type "RVESACTX %1". Fixed a bug in DXrecv.exe whereby the default item #1 would appear as an unfilled square the first time it was displayed using the Item:Display menu. Added a new demo to demonstrate the capabilities of the DirectX sound code. Added the document "Using a CIO-DAS16xx board with a 'Passive' button box" to the Documentation page of the Cortex web pages. Version 5.9.1 (c591.zip) has been uploaded. It contains the following changes:
For the two computer version of Cortex, added a new "receive" program written using Microsoft DirectX 6.0 SDK as the graphics library. In previous versions of Cortex, the receive program (RVESACTX.EXE) utilized the Scitech MGL graphics library, and therefore required the installation of Scitech Display Doctor software. The DirectX receive program (DXRECV.EXE) only requires the installation of the DirectX 6.x driver, which is freely available at the Microsoft web site. More information can be found in the document "dxrecv.doc" in the \DOCS directory of the Cortex distribution or in the Documentation section of the Cortex web page. Added srand2() and rand2() as CSS functions, which can now be used in a timing file. Added "ms_reward_duration" to the list of external variables that can be accessed via the timing file. Previously, this value could only be set through the Run:Parameters:General menu in Cortex. Fixed a problem in the Play mode of Cortex, whereby if the fixspot, rfield, etc. item was modified using the Item:View/Modify menu, then the next time Play was chosen, the entire subject's screen was the color of the modified item. With this fix, there will only be one space in the LUT reserved for the special items FIXSPOT, RFIELD, RPOINT, PLAY_ITEM, FIRST_ITEM. It is assumed that one of these special items would be the fixpoint and only one would be displayed at a time, so only one LUT entry is reserved. Added code in an attempt to fix a reported intermittent problem where the RVESACTX.EXE (receive program) sometimes crashes on shutdown. Added more checks on shutdown to make sure that the COM port is not being referenced after it has been released. Changed the code for the drawing of the circular and elliptical annulus, so a pattern does not fill in the center. In the previous code, the pattern file was being passed in to draw the inner and outer circles, even though it is only necessary for the outer circle. Added a new conference to the Cortex discussion groups to handle questions about the DirectX receive program. CORTEX discussion group capability has been added to the Discussion page of the CORTEX web site. Version 5.8.1 (c581.zip) has been uploaded. It contains the following changes:
The ability to play sounds in Cortex via a SoundBlaster card has been added to the dual computer Cortex program. With this code, up to 256 different sound (.wav) files can be played during an experiment. Version 5.7release10 (c57r10) has been uploaded. It contains the following changes:
Changed the code so that a touchscreen could be used with the two computer version of Cortex. The interrupt driven _touch.c code was designed to be run on a single computer. The new code uses the mouse emulation capability of the touchscreen driver to generate the touch locations. Added a new document entitled "Using a Touchscreen with Dual Computer Cortex" to the Documentation web page. Added another touchscreen related demo in the directory \DEMOS\TOUCH3. Fixed a bug in the CORTEX 5.7b9 code where the memory was not being freed after the display of JPEG, BMP, or PCX bitmaps. (Only applies to the remote version of Cortex.) Modifications to the Cortex web page only. Added links to the Matlab routines that are being used for analyzing Cortex data files. The Matlab links can be reached from the Download page, the Documentation page, and from the higher level http://cog.nimh.nih.gov/ page. Also, added "Spike Flip-Flop Circuitry" diagrams and "Thalamus" documentation to the Documentation page.
Version 5.7beta9 has been uploaded. It contains the following changes which apply ONLY to the two computer version of Cortex (REMOTE32 and REMCORT):
Added the ability to display JPEG, BMP, and PCX bitmaps, in addition to the standard Cortex (CTX) image files. The type of bitmap file is determined by the file extension. That is, to be processed correctly: JPEG files must have the extension .JPG; BMP files must have the extension .BMP; and PCX files must have the extension .PCX. All other bitmap file extensions are assumed to be the standard Cortex (CTX) bitmap type. Therefore, this code change should be transparent if you continue to just use CTX type bitmaps. It is assumed that the CTX files follow the documented format, or were generated with the TARGCORT.EXE utility. Please note that only the remote version of Cortex is able to support these other bitmap formats. This is because the MGL graphics library, which is used in the remote version of Cortex, natively supports the display of these file formats. Fixed a bug which prevented items from being displayed in 32 bit per pixel mode. Added the ability to set the GRAPHICS_SPECS "bits_per_pixel" parameter in CORTEX.CFG to be 16 or 24, in addition to 1, 2, 4, 8, 32. However, it is the responsibility of the Cortex user to make sure that the bitmap files are stored in the proper bit depth. (For example, an 8 bpp CTX bitmap will not be displayed properly when the GRAPHICS_SPECS parameter is set to 32 bits per pixel.) Version 5.7beta8 has been uploaded. It contains the following changes:
Changed the code so that if the graphics card can not be initialized for the remote version of Cortex, the user screen will display an error message and then Cortex will exit. In previous versions of Cortex, this was not an immediate fatal error. Therefore, Cortex would try to continue and perhaps crash later. Please note that some additional information about initialization errors may be written to the executable directory on the receive computer in the file RVESACTX.ERR. This change was prompted by a reported bug in remote Cortex, where the receive computer would crash when an item was displayed. The problem was traced to an incompatibility between SciTech Display Doctor 6.0a and ATI graphics cards. The SciTech/ATI problem seems to exist in any version of SciTech Display Doctor after version 5.3a. SciTech is aware of the problem. "Possible" work-arounds until a new SciTech Display Doctor is released: 1) install SciTech Display Doctor 5.3a; 2) uninstall SciTech Display Doctor completely if the graphics card driver is VBE 2.0 or higher, or VBE/AF 1.0 or higher compliant; 3) install a different model graphics card in the receive computer. (Note: This type of problem may also exist with graphics cards other than ATI cards, but we have not received any other reports.)
Version 5.7beta7 has been uploaded. It contains the following changes:
Version 5.7beta4 has been uploaded. It contains the following enhancements:
Version 5.7 labelled as beta1 until the newly formatted distribution
has been tested successfully on machines at several sites. CORTEX Web page construction begins. The goals are to make it easier for users and programmers to get access to the CORTEX code and documentation, and to centralize the reporting of bugs, and enhancement and help requests.
|