Welcome to the BASIC Stamp Windows Interface for the BASIC Stamp 1, BASIC Stamp 2, BASIC Stamp 2e, BASIC Stamp 2sx, BASIC Stamp 2p, BASIC Stamp 2pe and BASIC Stamp 2px. This file contains last-minute information about the BASIC Stamp Windows Interface. Contents: WHERE TO FIND INFORMATION SYSTEM REQUIREMENTS INSTALLATION KNOWN PROBLEMS WHAT'S NEW WHERE TO FIND INFORMATION Please read the KNOWN PROBLEMS section of this document. Currently, documentation on this product is contained in the BASIC Stamp Manual v2.2. Please visit the Parallax web site periodically to find updated software and documentation. http://www.parallax.com SYSTEM REQUIREMENTS Windows NT 4.0, Windows 2000 or Windows XP Recommended processor for the Operating System Recommended RAM for the Operating System 8 MB Free Hard Drive Space 256 Color VGA Video Card (24-bit SVGA recommended) 1 Available COM port or USB port INSTALLATION The BASIC Stamp Windows Interface is available from the Parallax CD or as a install file downloadable from the Parallax web site. Use the "Install" button, or, if you downloaded it, simply run the downloaded file and follow the prompts. After installation, run the Stampw.exe program to run the BASIC Stamp Windows Interface. KNOWN PROBLEMS All screens are formatted for a system with the "small fonts" display setting. Some screens will not be usable under the "large fonts" setting. WHAT'S NEW ---------- VERSION 2.2.5 ---General--- Added support for BS2pe v1.2 through v1.5. VERSION 2.2 ---General--- Added support for BS2px v1.0. Modified to ignore File Associations and Tips file settings when a source file is given on the command-line. Modified to enable the USB-based development boards to support the BS2pe. ---Bug Fixes--- Fixed Serial routines to open any COM port number (1 to 256). Fixed bugs that caused the software to except when user tried to invoke functions through the command line such as: stampw.exe /tokenize something.bs2 > output.txt --or-- stampw.exe /download soemthing.bs2 > output.txt Enhanced Enumerate COM Port routine to work properly with a rare case where the computer has more than on GUID for the reserved name 'PORTS' in the registry. VERSION 2.1 ---General--- Enhanced routine that retrieves the Com port list from the computer so that it retrieves port names even on Win2K and WinXP machines where the user is logged in as a restricted user. Re-aligned items on Preferences window. Updated Simple syntax scheme to include all the capitalization that the PBASIC scheme does. Modified identification routine to retrieve the computer's list of COM ports every time it is activate. Added Find/Replace to edit control's shortcut menu. Enhanced to cause editor tabs to hottrack (turn blue as mouse is directly over them). Enhanced to allow right-clicking tabs. This brings that tab to the foreground and opens a different shortcut menu containing only "New Page", "Close Page" and "Close All" menu items. This allows user to right-click and close any page at any time, right from the tabs, without having to first select the page then right click the edit control. Added feature to allow editor to remember the last tab that was active before right-clicking a tab and closing it. Enhanced editor to store Find/Replace Dialog's last known position in the registry (and subsequently restores it next time). Added "Don't Show This Message Again" checkbox to the WARNING message that appears when retokenizing for a different Stamp as the result of a download operation. Added "Don't Show This Message Again" feature to "This file belongs to project..." message. Added "Don't Show This Message Again" feature to "Multiple files are open. Close them and the editor?" message. Added "Replace - F4" to Edit menu. Removed "Print" from Editor's shortcut menu. Added "Save", "Save As", "Run", "Check Syntax" and "Memory Map" to Editor's Shortcut menu. Added "Save" and "Save As" to Editor Tab's shortcut menu. Enhanced Find/Replace dialog box's Replace option to do a single replace, then stop, unless user held down the control key, in which case it would do a Find Next (if nothing currently selected), then a Replace, followed by another Find Next. Added F3 and F4 keys as Find Next and Replace, respectively. Ctrl-F4 does a Replace/Find, just like holding the control key down while on the Find/Replace dialog box. Enabled and enhanced Find/Replace Dialog repositioning based on the found selection (works with Replace option too). Added routine to move mouse along with the Find/Replace dialog if mouse was over Find or Replace button at time of operation. Enhanced Find/Replace dialog to process F3 and F4 keys appropriately. Updated code to place a space after the apostrophe when auto-inserting $STAMP, $PBASIC and $PORT directives. Updated Tokenizer and Memory Map in order to display GOSUB usage and GOSUB vs. W6, B12 & B13 conflicts on the BS1 Memory Map. Enhanced SaveAs dialog to update the extension of the filename if the selected filter contained a single or a double (but not three or more) valid extensions. If the selected filter contained two extensions, the first extension is used for the file name. This was done to support both .BS1 and .BAS extensions for BASIC Stamp 1 code. Parallax highly recommends using .BS1 for new BASIC Stamp 1 code. ---Bug Fixes--- Fixed bug that caused Debug Terminal to discontinue display of BS1 data when download was performed while Debug Terminal was still open. Fixed bug that caused access violation if Debug Terminal opened, then Clear button pressed before any data had arrived in the receive buffer. Fixed bug in Com Port Edit routines and Preferences routines that made the customize com ports mechanism misbehave in certain cases. Fixed bug causing editor to not be minimize-able after it loaded a file via a Windows Explorer double-click and it was minimized at the time. Fixed bug causing annoying anti-minimize effect to continue to occur if OS had previous version of Stamp Editor still associated with file types. Fixed bug causing "... file modified but not saved..." message to appear twice. Fixed bugs causing the editor to not show open Debug windows via their associate magnifying glass icons or the F12 screen. Fixed Find/Replace to resize properly on WinXP. Fixed bug causing Close and Close All short-cut menu items to ignore unsaved files in the project. Fixed titlebar to refresh properly after the selected file is closed. Fixed FindReplace routines to perform ReplaceAll properly, without endless loop bug. Fixed FindReplace routines to prevent Invalid Selection Block and Cursor Outside of Selection Block errors. Fixed FindReplace routines to replace items in current selection when ReplaceAll is pressed. This works for entire-file or selection and from start-of-file or cursor. VERSION 2.1 Beta 1 ---General--- Added support for BASIC Stamp 1 through the BS1 Serial Adapter circuit. Enhanced Memory Map to display BASIC Stamp 1 EEPROM and RAM allocations. Enhanced Generate Object Code feature and the Stamp Loader.exe (now v1.8) to support the BASIC Stamp 1. Added Pot Scaling feature (Run menu). Added new preference setting: Ignore BS1 Modules unless downloading BS1 source code. This makes the editor naturally ignore the BS1 Identification steps unless BS1 source code is being downloaded; significantly decreasing the amount of time that is required for downloads to BS2 type modules. Enhanced Debug Terminal to support BASIC Stamp 1 debug packets. Added New File Template feature (Preferences->Files & Directories tab). After choosing a New File Template in preferences, selecting File->New loads the template file's contents, if it exists, into a new edit page. If template file does not exist or if user holds SHIFT key while selecting File->New the editor just opens a blank edit page. ---Bug Fixes--- Fixed Memory Map to display the RAM allocation in the correct orientation (right-to-left instead of left-to-right). Fixed Run and Tokenize features to update the syntax display before generating any source code errors. Fixed bug in Close routine causing exception error occasionally. Fixed bug in editor causing entire application to die when loading source code that is greater than 64K in size. It now allows editing of these files, though will not be able to tokenize them (an error message appears indicating the problem). VERSION 2.0 Beta 2.1 ---General--- Enhanced SaveDialog to automatically modify the filename's extension when the "Save as type" filter list is changed to another, single extension. Enhanced editor to try to place new $STAMP, $PBASIC and $PORT directives on lines 0, 1 and 2, respectively. If one of these directives already exists in a different location, the editor aligns them in this order, at that location. Enhanced PBASIC Syntax on-line help window to remember and reset it's last position and size. Enhanced installation program to allow administrators on WinNT/2K/XP machines to install editor for all users or just a single user. ---Bug Fixes--- Fixed bug in SaveDialog causing file to be saved without an extension when user has "Hide file extensions of known types" option selected in Windows. Fixed bug causing highlighted text (for syntax error messages) to be misaligned if the source code contained tab characters. Fixed bug causing current selection to be replaced when a directive button or menu item is selected. Fixed bug causing Stamp Editor to generate an error and close during startup when a user with low security permissions (on Win2K and WinXP) is logged in. Fixed bug in tokenizer to properly calculate 16-bit compile-time constants from large (>16-bit) expressions. VERSION 2.0 Beta 2 ---General--- Replaced old edit controls with new edit controls (integrated explorer, syntax highlighting, etc). Added enhanced Find/Replace features. Added automatic file backup feature. Saves backup of file upon save. Added Favorites. Added routines to allow Module Directories and Favorites to be re-arrangeable. Added Show Overwrite Caret to preferences. Added routines to check of other instances of editor (to allow for single instance only). Added Syntax Highlighting Scheme options in preferences. ---Bug Fixes--- Fixed bug in on-line help routines that prevented the help from appearing after the first time it was accessed. Modified tokenizer to support enhanced GET/PUT (just like enhanced READ/WRITE) plus ELSEIF and fixed a few bugs. Fixed download routine to bring an existing Debug Terminal to the front if a program was just donwloaded on that COM port and it contained a DEBUG or DEBUGIN command. Fixed bug in StampLoader/GenerateObjectFile that prevented it from working in v2.0 Beta 1. VERSION 2.0 Beta 1 This is a beta release of version 2.0 of the BASIC Stamp Editor. This editor supports the new enhanced form of PBASIC (PBASIC 2.5) as well as the existing form of PBASIC (PBASIC 2.0). Refer to the "PBASIC Editor v2.0 Beta 1.pdf" file for more information. VERSION 1.33 ---General--- Added support for the BS2pe module. ---Bug Fixes--- Fixed "Expected a Hex value" error. This error would occur for any constant in the PBASIC source code when run under Virtual PC on a Macintosh computer. Included v1.6 of StampLoader that properly supports BS2p v1.2 & v1.3 as well as the BS2pe module. VERSION 1.32 ---General--- The Stamp Editor now configures default directories for all supported stamps if (and only if) the current settings are blank and the corresponding subdirectories (BS2, BS2e, etc) exist, relative to the exe's launch location. The "Setup Stamp Editor.exe" creates these directories and fills them with the source code examples from the BASIC Stamp manual v2.0. Modified Directive menu to include both Stamp and Port directives. The Port directive causes the editor to download the source code to a specific COM port. See the "General" notes in Version 1.2, below, for more information on the PORT directive. Added "Don't show this message" checkboxes to the STAMP and PORT add/modification dialogs. This will keep the dialog from appearing when changing the Stamp or Port directives from the Directive menu or by using the toolbar buttons. The status of the change will appear on the status bar. The dialog will still appear, however, if the change requires an important warning about compatibility or project-related issues. About window now indicates which Stamp modules are supported by this editor. Added support for BS2e v1.1, BS2sx v1.1 and BS2p v1.3. BS2e v1.0, BS2sx v1.0 and BS2p v1.2 are still supported. ---Bug Fixes--- Fixed random lock-up issue when downloading programs. This typically occurred during the identification phase of the download process. Fixed ability to configure tab widths in the editor. Limited tab settings to 2, 4, 6, 8 and 10 characters only. Limited Font sizes to 8, 12, 15, 24, and 36. Some previous font sizes made no visible change to the screen font. VERSION 1.31 ---Bug Fixes--- Fixed the "4.74 is not a valid floating point number" error when trying to open Help. This affected computers with a regional setting that uses a , instead of a . to represent the decimal point. Enhanced format for Macro Key files (a feature of the Debug Terminal). This enhancement allows a user to define short-cut keys for data that includes carriage-return/line-feeds (hard returns). The previous version would work properly with hard returns during the current session, but would misload the macro file at the start of the next session. Existing Macro Key files are still supported properly. The Macro Key function will automatically update any existing macro key files once they are loaded and saved again. VERSION 1.3 ---General--- Supports "Stamper" 900MHz timing delays. The nature of the Stamper wireless product requires extended timeout delays beyond what is normal for the port scanning procedure. To support users of the Stamper without adversely affecting those who do not use it, the following is involved: The Stamper can be used with the Stamp Editor in any of the following cases: 1) Only one serial port appears in the Stamp Editor's list of available com ports. Use the Edit Ports feature on the Identify screen to change this. -or- 2) More than one serial port appears in the list of available com ports, but the Default Com Port setting in preferences is set to a specific port (ie: it is set to anything except AUTO). -or- 3) The $PORT directive is added to the source code to be downloaded. For example, if the following line appears at the top of the source code, the Stamp Editor will always download the code to COM port 2: '{$PORT COM2} The Stamper can NOT be used in the following case: The Default Com Port setting in preferences is set to AUTO and more than one serial port appears in the list of available ports and the $PORT directive does not appear in the source code. In order to support the Stamper while still allowing the scanning of multiple ports (for normal BASIC Stamp use), enter the $PORT directive into code that is to be downloaded using the Stamper. When any of items 1, 2 or 3 (above) are true, the Stamp Editor will automatically increase its timeout delays while communicating on the serial port. This will allow the Stamp Editor and the Stamper wireless product to communicate properly. ---Bug Fixes--- Fixed Random lockups during download. This problem would affect some computers by locking up the Stamp Editor at random times during a download procedure. Fixed help window to properly refresh its display in Win2K and WinXP. Fixed Memory Map problem that would prevent it from displaying any program other than slot 0 (in multi-file projects). Fixed Tip Of The Day bug that would cause errors after opening a file in a directory other then the location of tips file. Fixed bug when saving modified files in multi-file projects. Any file that appeared to the right of the currently selected file would not be saved, even if the editor asked if it should be saved. Fixed bug that caused caption to report the wrong file. The name of the last file in the project would be displayed upon opening a multi-file project. Fixed Custom Ports registry entry bug. Any ports added through the Edit Ports mechanism would incorrectly write the key's value. Fixed Generate Object Code feature to store the StampLoader.exe in the same directory where the .obj file is stored. The prompt would incorrectly indicate the location where it was stored. VERSION 1.2 ---General--- Completely rewrote Identification and Download procedures to automatically identify what type, if any, BASIC Stamp is attached to any available serial port. This information is displayed for the user to see, complete with indication as to which BASIC Stamp is currently being downloaded to. This feature can significantly help a user who is upgrading to a different Stamp module or simply doesn't realize what module is currently connected. Multiple BASIC Stamps can be connected to multiple serial ports at the same time. This procedure even prompts user as to which Stamp (if two or more of the same module are connected) to download to and can even suggest retokenizing for a different module should to code be written for the wrong one. $STAMP directive is automatically rewritten by the editor if the user chooses to retokenize for a different Stamp module. Added a Directive menu and Stamp Mode buttons that allow for quickly adding or changing the target BASIC Stamp module for which the PBASIC code is written. The $STAMP directive is now required to be in each PBASIC program and the Default Stamp Mode preference item has been removed (since it is defunct). The editor determines which Stamp to target for downloading based on this directive. Use the Directive menu or Stamp Mode buttons (noted above) to set or modify this directive (or you could manually modify the directive if you like). NOTE: Any code that is missing the $Stamp directive, but who's filename contains a known Stamp extension (.bs2, bse, bsx, bsp) will be recognized by the extension and an appropriate Stamp directive will be added automatically for you. Added Generate Object Code... feature (in File Menu) to allow tokenizing and saving of object code (the actual binary data that is downloaded to the BASIC Stamp) in a separate file. This object code can be sent to other Stamp users so they can try your program without you having to release the actual source code. If you have customers using Stamp-based products, you can release firmware updates to them in this manner. Object code can be saved as a separate .obj file (downloadable with the StampLoader.exe program) or as a single executable (integrated with the StampLoader.exe inside of it. The single executable method provides a simpler way to pass your firmware update on to your customers. StampLoader.exe program is required for downloading separate .obj files. The StampLoader.exe program can be automatically generated by using the second output file option in the Generate Object Code... feature. Additionally, firmware, product, company and related info can be embedded in the object code or single executable file for your customers to view before downloading. Added on-line help containing entire PBASIC syntax. Context sensitive help (highlighting a word in editor and pressing F1 key) is also supported. On-line help can remain open while using the Stamp Editor; simply press ALT+TAB to toggle back and forth between the Stamp Editor and On-Line Help. NOTE: On-Line help requires Microsoft's HTML Help utility and Internet Explorer 4.0 or above (IE5.0 recommended). Use the hhupd.exe (included with the BASIC Stamp Editor setup program) to install or upgrade the HTML Help utility. If you need it, you can download the latest version of Internet Explorer from: http://www.microsoft.com/ie Added Tip-Of-The-Day dialog box that can be configured to open upon startup, or can be seen at any time from the Help menu. The tips are contained in the Stamp_Tips.txt file in an easy to use format. You can add your own tips as long as you follow the simple rules described at the top of the Stamp_Tips.txt file. Added Open From... and Save To... feature to allow quick access to any directory from the list of default Stamp module directories or the list of recently used directories. Shortcut keys CTRL+SHFT+O and CTRL+SHFT+S activate this feature as well. Removed /NoRegistry and /NoNotes command-line options. Added new command-line switches: /COM#, /ReadOnly, /Tokenize, /Identify, /Download, /Updates, /NoDebug, /NoPrompts and /Pipe. Read the "Stamp Editor.pdf" document for more information. Automatically associates BASIC Stamp source code file types (.BS2, .BSE, .BSX and .BSP) with the BASIC Stamp editor. Allows user to disallow this through prompts or preferences. Also, when using any Explorer-shell for file browsing, right-clicking on a BASIC Stamp source code file provides you with an Open With Stamp Editor option. Added ALT key shortcuts for Debug Terminal buttons. Added Close All menu item (in File menu and on shortcut menu). Added $PORT directive to allow directing a PBASIC program towards a specific serial port. Syntax is: '{$PORT COM#} ;where # is a valid port number. When any PBASIC program containing this directive is downloaded, all other ports will be ignored. This directive is especially important if using two of the same BASIC Stamp module types on two COM ports with two different PBASIC programs at the same time; without this directive, downloading would be a tedious task of always answering the "which Stamp?" prompt. ---Big Fixes--- Fixed error when running on WinNT, 2000 or XP that would cause the Debug Terminal to lock-up when user clicked Close while no DEBUG data was arriving from Stamp. Fixed bug where, while a Debug Terminal was open, performing an Identify function would cause Debug Terminal's port to close, however, no indication was given that this happened. Now, the Debug Terminal regains access to the port after an Identify procedure. Fixed error in Debug Terminal's Macro Keys feature that would make it unusable. Fixed occurance of erroneous character in transmit pane of Debug Terminal when hitting F9, F11, F12, CTRL or CTRL+~. Fixed Debug Terminal display error where the horizontal scroll bar would not be properly scaled when wrap mode was set to Pane and characters arrived beyond the right edge of the receive pane. Fixed multi-file project downloading error that caused editor to scan all com ports before attempting to download last program. This would sometimes cause the editor to fail to download the last program in BS2e, BS2sx and BS2p projects. Fixed error when recording window positions while windows are maximized. This would cause the "maximized" size to be recorded as a "normalized" state. VERSION 1.1 Increased timeout delay in programming protocol (to 1 second) to allow for better reliability with remote programming RF modules. Updated to support firmware version 1.2 of the BS2p modules. Version 1.099 ---General--- Added support for BS2p. This includes the use of the $STAMP directive as shown in the Version 1.09 beta text below. Example: '{$STAMP BS2p} ---Big Fixes--- Fixed problem that caused "Failed to set date for BgColor" error on Windows NT and Windows 2000 machines. Version 1.096 ---General--- Added support for BS2e. This includes the use of the $STAMP directive as shown in the Version 1.09 beta text below. Example: '{$STAMP BS2E} ---Bug Fixes--- Removed message window that appeared when opening Debug Terminal manually. Version 1.091 beta ---Bug Fixes--- Fixed the tokenization error with the PUT command. This version now downloads the PUT command to the BASIC Stamp 2SX properly. Version 1.09 beta ---General--- Two command-line switches have been added: /NOREGISTRY - keeps the software from writing to the Windows registry. This can be helpful for those running Windows NT under a non-administrator user profile. It is best used by first running the software without the switch (while logged in as an administrator), setting the desired preferences, exiting the software and running it with the /noregistry switch afterwards. /NONOTES - keeps the software from reading and writing to the Notes.dat file (in the Windows directory) where the last BASIC Stamp filenames accessed are stored. Example: C:\stamp\stampw.exe /noregistry /nonotes will start the software without registry writing or notes.dat reading and writing. ---Debug Terminals--- Up to four (4) Debug Terminal windows may be opened at once (each on a different com port) to allow for debugging of a small network of BASIC Stamps or for receiving data from multiple serial pins on the stamp. Each Debug Terminal creates its own entry in the Run->Debug submenu and its own button on the editor toolbar. Debug Terminals can be brought forward (when hidden behind the editor window) by: 1) selecting the associated menu item from the Run->Debug submenu, 2) clicking on the associated button on the editor tool bar, 3) pressing the associated short-cut key (Ctrl-1 for Debug Terminal #1, Ctrl-2 for #2, etc), or 4) repeatedly pressing the F12 key to iterate through all open windows. A new Debug Terminal can be opened by pressing F11. ---Editor--- Pressing Ctrl-` (the ` key is usually to the left of the 1 key) brings the editor window forward if it was behind any Debug Terminals. Special directive to indicate target Stamp can (and should) be added to any source code to tell the editor which Stamp to program for. This allows easier use of BS2 and BS2SX source code files during the same editing session, and is required if a BS2SX project (consisting of multiple files) is desired. Example directives: '{$STAMP BS2} -or- '{$STAMP BS2SX} -or- '{$STAMP BS2SX,file1,file2,...,file7} ;where file1, file2, etc are actual path and filename to additional BS2SX project file members. (See Stamp Win Interface.pdf for more details). Editor tabs indicate a program's logical number and the project it belongs for any BS2SX file. Example #1: 0:Test.bsx indicates this file will be downloaded into program slot #0 the next time it is downloaded to the BS2SX. Example #2: [Test] 1:Process.bsx indicates this file is program #1 and belongs to the Test project (0:Test.bsx above). This program can/will be downloaded into program slot #1 the next time any file within the project is downloaded. Default BS2SX download mode added to preferences. Set this option to "modified" (the default) to download only the last modified files (or all the files if none were modified) to the BS2SX. Set this option to "all" to always download all files in the project to the BS2SX. Set this option to "current" to always download only the current file to the BS2SX. The "close" option in the File menu and shortcut menu will close the entire project if the current file belongs to a BS2SX project. Close acts as before if the file is not a BS2SX file or does not belong to a BS2SX project. A warning prompt will appear before a project is closed in this manner. Cut, Copy and Paste functions added to shortcut menu. Status bar indicates whether or not file has been downloaded. "downloaded" will appear in box three of the status bar if the file has been downloaded and not modified since. This status bar box will be blank if file has not been downloaded, or has been modified since the last download. Find Next shortcut key (F3) added. This will perform the last "find" again, starting at the current cursor location. ---Memory Map--- Displays source code name in the title bar. Source Code combo box added to allow moving to different files within a BS2SX project. ---Bug Fixes--- Serial port sharing mechanism (used when re-downloading a program while a Debug Terminal is still open) has been redone for smoother, more reliable operation. Open and Save dialogs now browse to the last directory from which a file was opened, or to the directory the current file was last opened/saved to. Version 1.04 Allows user to edit the list of available COM ports. Ports connected to such devices as mice and modems can be excluded and those not appearing in the default list may be added. Tokenizer symbol table was too small and is now four times larger. Tokenizer now processes indexed variable names properly when using the verbose "?" option in DEBUG statements. Version 1.03 - Unreleased Looks through a wider section of the Windows registry for information about installed COM ports. Version 1.02 Fixes a low-memory situation in the Debug Terminal. Version 1.01 Fixes a problem with recorded screen coordinates. If a window was moved off the left or top edge of the screen, and the editor was closed, it would not start up properly next time. Version 1.0 First release.