Here's the instruction set for PicBASIC Pro, as lifted from the MEL web site at: http://www.melabs.com/mel/pbp.htm Note the page boundary handling, If..Then..Else..Endif and Interrupts. BASIC Stamp I & II library Automatic page boundary handling past 2K Direct and library routine access to any pin or register Real If..Then..Else..Endif Hierarchal expression handling Interrupts in Basic and assembler Built-in LCD support Oscillator support from 3.58Mhz to 20Mhz More variable space (processor dependent) MPASM / ICE compatibilty Variable types: BIT BYTE WORD BIT ARRAYS BYTE ARRAYS WORD ARRAYS PicBasic Pro Instruction Set: @ - Insert one line of assembly language code. ASM..ENDASM - Insert assembly language code section. BRANCH - Computed GOTO (equiv. to ON..GOTO). BRANCHL - BRANCH out of page (long BRANCH). BUTTON - Debounce and auto-repeat input on specified pin. CALL - Call assembly language subroutine at specified label. CLEAR - Zero all variables. COUNT - Count number of pulses on a pin. DATA - Define initial contents of on-chip EEPROM. DISABLE - Disable ON INTERRUPT processing. DTMFOUT - Produce touch-tones on a pin. EEPROM - Define initial contents of on-chip EEPROM. ENABLE - Enable ON INTERRUPT processing. END - Stop execution and enter low power mode. FOR..NEXT - Repeatedly execute statement(s). FREQOUT - Produce up to 2 frequencies on a pin. GOSUB - Call BASIC subroutine at specified label. GOTO - Continue execution at specified label. HIGH - Make pin output high. I2CREAD - Read bytes from I2C device. I2CWRITE - Write bytes to I2C device. IF..THEN..ELSE..ENDIF - Conditionally execute on specified condition. INPUT - Make pin an input. {LET} - Assign result of an expression to a variable. LCDOUT - Display characters on LCD. LOOKDOWN - Search constant table for value. LOOKDOWN2 - Search constant / variable table for value. LOOKUP - Fetch constant value from table. LOOKUP2 - Fetch constant / variable value from table. LOW - Make pin output low. NAP - Power down processor for short period of time. ON INTERRUPT - Execute subroutine on an interrupt. OUTPUT - Make pin an output. PAUSE - Delay (1mSec resolution). PAUSEUS - Delay (1uSec resolution). PEEK - Read byte from register. POKE - Write byte to register. POT - Read potentiometer on specified pin. PULSIN - Measure pulse width. PULSOUT - Generate pulse. PWM - Output pulse width modulated pulse train to pin. RANDOM - Generate pseudo-random number. RCTIME - Measure pulse width. READ - Read byte from on-chip EEPROM. RESUME - Continue execution after interrupt handling. RETURN - Continue execution at statement following last executed GOSUB. REVERSE - Make output pin an input or an input pin an output. SERIN - Asynchronous serial input (N81). SEROUT - Asynchronous serial output (N81). SHIFTIN - Synchronous serial input. SHIFTOUT - Synchronous serial output. SLEEP - Power down processor for a period of time. STOP - Stop program execution. SOUND - Generate tone or white-noise on specified pin. TOGGLE - Make pin output and toggle state. WHILE..WEND - Execute code while condition is true. WRITE - Write byte to on-chip EEPROM. Functions / Operators: ABS - Absolute value COS - Cosine DCD - 2n decode DIG - Return digit MAX - Maximum MIN - Minimum NCD - Encode REV - Reverse bits SIN - Sine SQR - Square root + - / // * ** */ << >> & | ^ ~ && || ^^ &/ |/ ^/ The PicBasic Pro Compiler does not have the same level of compatibility with the BASIC Stamp I that the PicBasic Compiler enjoys. The PicBasic Pro Compiler is more of a "real" BASIC.