============================================================================== BSSClub proudly presents ============================================================================== Project: ST1-64 Basic Interpreter Version: 2.0 Description: Basic Stamp I compatible firmware for 16C84 or 16F84 with 64 bytes of memory ST1-64 is a virtual machine running on a PIC16C84 or PIC16F84 microcontroller that interprets the intermediate code, stored in the internal on-chip 64 byte EEPROM memory. The machine is fully compatible with Parallax Basic Stamp 1 Basic interpreter with the only exception - the program memory has only 64 bytes. The compatibility includes compatible download protocol and debugging facilities. For development can be used the original DOS development software by Parallax or any other development software (e.g. Windows development software by TEP). Features ======== - The size of program memory is only 64 bytes (instead of 256 bytes in Stamp I). There is no warning if longer program is loaded. The freeware utility STMPSIZE that is included in the distribution is useful for checking the size of program. - The 16C84 and 16F84 processor has soft pullup resistors for port available. For compatibility with original chip (that was 16C56 and had no pullup resistors) the pullup resistors are disabled. - The POT Scale command (Alt+P) will not work on 64 byte memory version of STAMP. The reason is that this command needs all 256 byte of EEPROM memory and this project has only 64 bytes. This is not our fault but the fault of Parallax Stamp editor. Sorry. As a replacement for POT Scale command is included the Basic program SCALE64.BAS that replaces the Stamp Editor command "Scale POT". Download and run this program and in the debug window you will see three combinations of values Scale=Value for three different values of the scale ($FF, $10, and $01). - After chip programming the data EEPROM memory is not empty. It contains the code of following default basic program: Label: GOTO Label END - The loading of basic program into the chip is usually possible at any time. If some other program is running, it will be interrupted and overwritten. There are two basic commands, that are not interruptible: PAUSE and SERIN. If the controller is performing these commands, it is necessary to reset it using MCLR pin. Compiler ======== The compiler ST1.EXE is included in the distribution. The syntax of the input language of this compiler is compatible with the Basic Stamp I language with some extensions, that will be useful in future types of core. The compiler after compiling displays the size of compiled programs in bytes, so the STMPSIZE utility is no longer needed. This compiler allows compiling the Basic program into the intermediate code (the default action of the compiler), downloading the program to the ST1-64 chip using parallel port interface (with /l option) or serial port interface (with /s) option and debugging the program (with /d option). The compiler also generates the output file with the binary intermediate code named CODE.OBJ. The name of this file can be changed using the /o command line option. The ST1 compiler uses in present version for downloading the parallel interface that is vulnerable to interrupts. For maximal reliability it should be run under clear MS-DOS (not the DOS window under WIndows). You can use it also in the DOS window under Windows, but the downloading is not allways succesful and sometimes you should repeat it. In near future will be implemented downloading using serial interface that is not vulnerable to interrupts. Compiler is written using LEX and YACC tools and is prepared to be multilanguage compiler with multiple code generation modules. Future versions will support more languages (the BS1 syntax is only moderate start) and code generation modules for interpreters with more memory and also direct code generation for microcontroller. Other compilers It is also possible to use any compiler that is able to generate the code for Basic Stamp I and to download it using PC parallel port (or serial port in some cases). An example of such compiler is the original Basic Stamp I (STAMP.EXE) that is freely downloadable from the Parallax FTP server ftp://ftp.parallaxinc.com/pub/parallax/stamp.exe Other compilers are discussed on the BSSClub WWW site http://www.geocities.com/SiliconValley/Cable/7772/ Version History =============== - Version 1.0, Initial Release, June 21, 1999 - Version 2.0, November, 1999 Added compiler ST1.EXE Added and tested serial port dovnloading circuit Added GIF version of circuit schematics Removed ID locations programming in hex file Added two versions of hex file - for 16C84 and 16F84 Bug Reports and Comments ======================== Send reports and comments to bssclub@geocities.com. Distribution files ================== - ST1-64C .HEX - Firmware for ST1-64 core interpreter for 16C84 - ST1-64F .HEX - Firmware for ST1-64 core interpreter for 16F84 - ST1 .EXE - Compiler for ST1-xx core interpreter - CIRCUITS.TXT - Circuit description for ST1-64 hardware - CIRCUITP.GIF - Circuit schematics picture for ST1-64 hardware with parallel port downloading - ADAPT1 .GIF - Schematics for serial adapter using transistors - ADAPT2 .GIF - Schematics for serial adapter using MAX202 (MAX232) - SCALE64 .BAS - Program for POT scale measurement - STMPSIZE.ZIP - Utility to analyze the EEPROM utilization of a Stamp 1 program - ST1-64 .TXT - This file ALL THESE FILES MUST BE INCLUDED IN ANY DISTRIBUTION OF THIS PROGRAM Please feel free to distribute this program, however all files included in the original build must be included in all distributions of this program including this file, and no changes may be made to any of the files distributed with this build. Documentation ============= For users unfamiliar with the Basic Stamp system we strongly recommend the original Basic Stamp manual, which is available in pdf format from the Parallax Web site at http://www.parallaxinc.com/. Distribution ============ This software is property of BSSClub and you are free to use it for your personal use as you see fit. However, this software is not public domain and you may not redistribute it in any way with any product or service. If you would like to mirror the official distribution on your Web or FTP site, contact BSSClub and we will not unreasonably withold our permission to do so provided you agree not to charge for the software, not to modify it in any way, and you agree to keep the most current version. Disclaimers =========== This software is provided ``as is'' and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the authors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Basic Stamps are a product and registered trademarks of Parallax Inc. BSSClub is in no way affiliated with Parallax. BSSClub ======= BSSClub E-mail : bssclub@geocities.com WWW : http://www.geocities.com/SiliconValley/Cable/7772/ ================================================================