ULTIMATE List of Propeller Languages

The list has grown too large to maintain on the Parallax Forum.Discontinued
The new updated list is found here.

The most comprehensive source of programming languages for the Parallax Propeller Chip The list seen below is kept up to date and is the most recent posting of languages. It includes authors, source URLs, information and download sites. Please post directly into this thread if you learn about a new language for the Propeller. New languages appear almost every month on this robust Propeller chip (P8X32A-D40).

SIMULATED SPIN by Dave Heinhttp://forums.parallax.com/showthread.php?127976-Spin-SimulatorEverything is open source under the MIT open source license. I'll add the notice in the next update. I spent a few days writing a Spin simulator. The attached zip file contains a first cut at the simulator. I've implemented most of the Spin bytecodes, except for the cogxxx and lockxxx ones. Also the value for cnt is always zero. I'll transate the system time into a cnt value at some point. Pin-related operations don't really do anything. I also haven't implemented the bit read and write functions. The simulator runs in a DOS window on a Windows machine. Also, the basic I/O drivers are different. Instead of using FullDuplexSerial and FSRW the simulator uses conio and fileio. These drivers provide the same basic methods such as rx, tx, popen, pread, etc. You can use the Parallax Prop Tool, BST or homespun to compile the spin code and generate a binary file. spinsim loads the binary file and executes it.

SPIN STAMP CODE FOR THE BOE-BOT by JIM COLEMANhttp://obex.parallax.com/objects/155/Learn spin code with the Spin Stamp and the Board of Education BOT. The first three chapters of Andy Lindsays Robotics with the Boe-Bot plus objects from his PEK Labs

HOMESPUN SPIN COMPILER by MPARK(Not fully open source) propeller.wikispaces.com/Homespun+Spin+Compilerhttp://forums.parallax.com/showthread.php?p=749832This is a command-line Spin compiler that reads .spin files and outputs .eeprom files. It is written in C# and runs on Windows with the .Net framework and on Linux with Mono. It generates output that is identical to Proptool's (except the occasional least-significant bit in floating-point constants), which was the original goal. It takes Spin source and generates a .eeprom file. At the moment, I think it will parse anything that Proptool will, and it should generate identical bytecode (except for maybe the least-significant bit in floating-point constants).

BST BRADS SPIN TOOL by BRADCwww.fnarfbargle.com/bst/www.fnarfbargle.com/bst.htmlThe bst suite of tools comprises : # bstl - The command line loader. This little application simply allows you to load pre-compiled .binary and .eeprom files into your propeller. It is a command line application that takes optional parameters and a file name. # bstc - The command line compiler. bstc is a completely Parallax syntax compatible SPIN and PASM compiler and linker. In addition to being able to compile and load a Propeller, it has a few additional features often requested by users (like being able to emit a list file, some basic optimization, and zip file generation). # bst - The GUI IDE. bst is a fairly complete Integrated Development Environment that aims (and still falls short) to be eventually comparable and compatible with the Parallax Propeller Tool. bst is structured to be a work-alike to the Parallax Propeller Tool so that new users will find the Parallax documentation familiar enough to be able to start from scratch without being plunged into an unfamiliar environment. Like bstc, bst has several features not found in other Propeller development tools, such as an integrated code listing window, basic serial debug terminal and complete project file management. bst also allows you to associate each editor window to a Propeller to allow easy management of multiple Propeller projects.

Supports the same syntax and mnemonics as the Parallax Propeller Tool's built-in assembler.

Generates files that can be loaded with the Propeller Tool.

Supports input in US-ASCII or UTF-8, and allows the full Unicode character set in labels and identifiers.

Runs on any platform and architecture with Java 5 available.

Really fast (assembles average-size programs in under 10ms on a MacBook Pro).

Extensible architecture allows for future enhancements like macros, alternative mnemonics, or new directives.

Modular assembler core and instruction set model also make an excellent code generation stage for compilers.

Open-source (GPL).

PLASMA by Linushttp://www.linusakesson.net/software/plasma/index.phphttp://forums.parallax.com/forums/pr.aspx?f=33&m=312639The Propeller Low-level Assembly Aggregator (lft), Assembly Language Complier: Plasma is a small (637 lines of source code) tool for compiling and concatenating propeller assembly language (PASM) and binary data. It extends PASM with some new features, most notably ARM-like constant pools. When I began to work on my Turbulence demo, I soon realized that I was going to have to write my own assembler. The one from Parallax was bulky and inflexibly locked to the spin environment for which it was designed, and had to be run through wine. The open source alternatives weren't stable enough at the time. Consequently, I hacked together some prolog code and a bison parser. I've decided to publish the source code here, as free software, in the hope that somebody will find it useful and inspiring.

FEMTOBASIC by MICHAEL GREENobex.parallax.com/objects/28/This is a simple Basic interpreter for the Propeller. It supports a keyboard and either a VGA or TV display as well as an optional SD card with PC compatible FAT file system. It runs on the Propeller Demo Board, Protoboard, and Hydra. On the Hydra, the VGA version doesn't work with the SD card because the I/O pins involved conflict. An extended version with support for the IR Buddy is included as an example of extending the interpreter. Fix: SD card turned off when unmounted (thanks Cluso99).

BOEBOT BASIC by MICHAEL GREENobex.parallax.com/objects/27/This is a modified version of FemtoBasic designed to run on a Protoboard on a BOE-BOT chassis. It supports the wheel servos and a PING bracket servo, a PING sensor, an IR emitter/detector/distance sensor, and an HM55B compass. It uses a serial console via either an xBee wireless link or the USB programming port. Some sample programs are included. Like FemtoBasic, programs and data can be stored on an attached SD card. See the beginning of the BoeBotBasic.spin file for a change log. Fix: SD card turned off when unmounted (thanks Cluso99).

DONGLE BASIC by MICHAEL GREENobex.parallax.com/objects/212/This is a modified version of FemtoBasic intended for use with Hitt Consulting's Propeller Dongle or any other minimal Propeller board like the PropStick or PropStickUSB. It requires only the serial port used for programming, but will use an SD card on I/O pins 8-11 if present. Like FemtoBasic, it provides access to the I/O pins and counters and can use any EEPROM present for programs or data. See the beginning of the DongleBasic.spin source file for a change log. Fix: SD card turned off when unmounted (thanks Cluso99).UOLED PROP BASIC by MICHAEL GREENhttp://obex.parallax.com/objects/213/]obex.parallax.com/objects/213/This is a modified version of FemtoBasic designed for the 4D Systems uOLED-96-Prop display with an integrated Propeller controller and uSD card socket. In addition to the usual FemtoBasic features including SD card support, this has a series of statements for controlling the display. The console is serial port because of the small size of the display and the absence of a standard keyboard interface. The archive includes a Basic version of 4D Systems' demo program. See the beginning of the uOLED96PropBasic.spin file for a change log. Fix: SD card turned off when unmounted (thanks Cluso99).

MITS ALTAIR 4K BASIC by HEATER The 8080 emulation for the Propeller will run MITS Altair Basic. You can now enter, edit and run programs written in one of Microsoft's first basics on your Prop Demo board! This is mostly the same as the CP/M for the Prop package (2.1) but: 1. Altair extended basic v4 is loaded into memory instead of CP/M. 2. Added emulation of the 8080 RST instructions as the BASICS use them even if CP/M does not. 3. Added emulation of the Altair's front panel switch register which is used by BASICS to determine serial port configuration. This build still includes disk emulation on an sd card but will run with no sd card present.http://forums.parallax.com/forums/default.aspx?f=25&m=320075]forums.parallax.com/forums/default.aspx?f=25&m=320075

HT BASIC - HYDRA TINY BASIC by ROBERT WOODRING Hydra Tiny Basic (HT Basic) is based on Dr. Dobbs Journals various implementations of Tiny Basic. My version is loosely based on the work of Li Chen Wangs Palo Alto tiny Basic and more so the version by Gordon Brandlys 68000. The language is rather simple but should implement most statements and function to make a surprisingly useful implementation. In folder Robert_Woodring/ RGW_HTBasic_08_03_06 HYDRA CD

RGW_HTBasic_08_20_06 by ROBERT WOODRING a tiny basic modified version in folder Robert_Woodring/ RGW_HTBasic_08_20_06
HYDRA CD

ALTAIR MINOL TINY BASIC, by heater By popular request (humanoido) here is PropAltair running the tiny basic version called MINOL. This makes the HUB RAM look huge! As it happens there is a MINOL on the altairz80 simulator site. -heater. Tiny Basic was implemented on the Intel 8080/8085 and the original archived discussion page, reconstructed (with help from Volume 17 of the CP/M User's Group archives), is found here: MINOL-Tiny BASIC with Strings in 1.75K Bytes web.archive.org/web/19980702115208/http://www.signiform.com/erik/pubs/minol.htm
Note the letter by Erik T. Mueller. Erik T. Mueller said... Dear Mr. Warren: May 1, 1976. I have a Tiny BASIC program running on my Altair that I think you might be interested in. I call it MINOL. It fits in 1.75K memory. Unlike the other Tiny BASIC's, MINOL has a string-handling capability, but only single-byte, integer arithmetic and left-to-right expression evaluation. Additions to TB include CALL machine-language sub- routines, multiple statements on a line (like TBX), and optional "LET" in variable assignments. Memory locations of the form (H,L) can be used interchangably with variables, permitting DIM-like operations. Sincerely, Erik T. Mueller... This information was updated 27 times. While the original posting from "Dr. Dobb's Journal of Computer Calisthenics and Orthodontia" no longer links the Tiny Basic listing or file, just scroll down farther on the page and provided is a listing of the 8080/8085 Tiny Basic code manually typed which can be copied and pasted from the html page! You can consult the more recent versions as archived links here (as I chose the oldest link from Jul 02, 1998). web.archive.org/web/*/http://www.signiform.com/erik/pubs/minol.htm. The newest link is here, from Sep 28, 2007. web.archive.org/web/20070928040139/http://www.signiform.com/erik/pubs/minol.htm. Thanks to the Internet Archive WayBack Machine. www.archive.org/web/web.php. At originally only 1.75K, a working version on the Prop would be absolutely remarkable. -humanoido (thanks to heater for making this possible!) http://forums.parallax.com/forums/default.aspx?f=25&p=1&m=320075

PBASIC BS2 FUNCTIONS by MARTIN HEBEL General PBASIC functionality library, written in Spin, that mimics and extends many popular BS2 functions: COUNT, DEBUG, DEBUGIN, FREQOUT, PAUSE, PULSOUT, PULSIN, PWM, RCTIME, SEROUT, SERIN, SHIFTOUT, SHIFTIN. Version 1.5.0 adds methods for HIGH/LOW/IN, and continuous methods for FREQOUT, PWM and COUNT. It also add EEPROM access for code and high memory access using READ and WRITE methods. Don't forget to start -Needed for timing: BS2.Start(31,30)http://obex.parallax.com/objects/30/]http://obex.parallax.com/objects/30/

CATALINA C by ROSSH This is a FREE ANSI C compiler for the Propeller, based on LCC.(Catalina shells out to Homespun and Homespun is not fully open source.) There are versions available for Windows and Linux. There is a tutorial to get you started, as well as a technical description of various aspects of Catalina. It includes Documents and demos. Binaries and sources for Win32 and Linux are also in posts.http://forums.parallax.com/forums/default.aspx?f=25&m=339139

DUMBO BASIC by ROSSH (beta release ) will eventually be a substantially complete GWBASIC clone. Compiles under Catalina using the large memory model (requires 512KB XMM RAM). While not complete, this release (0.3) can be used to execute complete basic programs, such as Star Trek and the classic ELIZA psychoanalyst program - albeit slowly (e.g. it can take 20-30 seconds for Eliza to respond to each line of input). Dumbo BASIC is based on "Mini Basic" by Malcolm McLean, but is heavily modified to add many common basic statements that Mini Basic lacks, new types, and also some tweaks to support GWBASIC style syntax. It currently executes basic programs about 100 lines per second - about 10 times faster than Bywater BASIC. The ELIZA basic program and several versions of Star Trek are included, along with Dumbo BASIC binaries for the TriBladeProp and the HYDRA. There is also a DOS executable (the DOS version requires MinGW and GCC to compile).http://forums.parallax.com/forums/default.aspx?f=25&p=3&m=388930

GCC C compiler Somewhere along the line it has been forgotten that the Prop can be programmed with the GCC C compiler. That is, there is a version of GCC that compiles for the 6809 and the resulting binaries are runnable under MoCog. MoCog is not perfected yet so perhaps this is a bit premature but early test programs for MoCog were created with GCC. - heater. The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...). Some people have suggested porting one of the existing open source GPL C compilers: GCC (Gnu C Compiler) or SDCC (Small Device C Compiler). Both these were written to be retargetable, so a back end for the Propeller should be possible, again probably using the LMM. - "The home of GCC for 6809 is here www.oddchange.com/gcc6809/ MoCog can be found in the MoCog thread. Getting the compiled binary into a form ready load into MoCog with say a Spin "file" statement is a bit of a trick with objdump and or hexdump under Linux . I'd probably need to provide some instructions when MoCog is a bit more mature." - heaterhttp://www.oddchange.com/gcc6809/http://gcc.gnu.org/http://propeller.wikispaces.com/Programming+in+C

BDS C COMPILER by Leor Zolman, runs under the z80 emulatorhttp://bdsoft.proboards.com/index.cgi?board=talk2&action=display&thread=69http://www.bdsoft.com/resources/bdsc.htmlhttp://bdsoft.proboards.com/index.cgi?8080/Z80 C Compiler: Now Open Source and Public Domain! In 1979, I wrote a compiler for a subset of the pre-Standard ("K&R Classic") C Programming Language. The package was developed on, and targeted for, CP/M-80 floppy-based systems with as little as 32K of available system RAM. Originally intending to publish the source code in BYTE, I was eventually persuaded to turn the project into a retail product. Now BDS C's commercial potential is well in the past. Until recently, I had not been aware of the continuing international interest in 8-bit CP/M (and derivative) systems... upon this discovery, I found no reason not to render BDS C, along with all of its source code (including the 8080 assembly language compiler/linker sources), free to the public.

C IMAGECRAFT ICCV 7.04 (not open source)http://www.imagecraft.co/pub/iccv7prop_demo.exefor Propeller Demo, Free fully functional ICCV7 45-day trial version. After 45 days, code-size limited 10 K for non-commercial use. Purchase either a non-commercial or standard license from Parallax. The ICC website has a good description of what you get with the Demo version as well as the Non-Commercial vs. Standard versions. You only get floating point with the Standard version. The Demo version works like the Non-Commercial version for 45 days, then will only compile programs up to 1/3 of the size of the Propeller's memory. You have to refer to ICCs documentation on any C programming questions including multi-cog programming.

PROPTINY - Jack Crenshaw's TINY language by HEATERhttp://forums.parallax.com/forums/default.aspx?f=25&m=355121Runs on the demo board. Some time ago I worked my way through Jack Crenshaw's famous series of articles "Let's Build a Compiler." For those who know a little about programming but nothing about creating compilers, this is a fabulous introduction to that black art. Even if creating a compiler is not your goal, the simple parsing techniques described are worth a look at as they have many uses elsewhere.
compilers.iecc.com/crenshaw/ As I worked through the series, I worked the examples in C rather than Pascal as used by Jack and generated code for the Propeller rather than the original target, Motorola 68000. The result is an implementation of the TINY language defined in the series that generates PASM code for the Prop to be run under a Large Memory Model (LMM) virtual machine. TINY is a very simple block structured language in the style of Pascal and all. See the README.txt for instructions on building the compiler and compiling/asembling/downloading TINY programs. A simple example program with most TINY features implemented so far is included.

With this programming language you can draw neat things and stuff without using any sort of compiler/editor, just type commands and watch them happen. Here's a fun program you can type to get you started:
to spiral :ln
fd :ln
rt 92
fd :ln+1
rt 92
spiral :ln+2
end
Then just enter
spiral 4
and watch the fun!

PROPJAVELINhttp://propeller.wikispaces.com/Fast-Track+for+PropJavelinPropJavelin is a project to implement the functionality of the Javelin Stamp on the Propeller Chip. This is the implementation of a JVM which runs on the Propeller to allow Java(TM) programming of the Propeller. Java program development is undertaken using a modified version of the Javelin Stamp IDE.

PropFORTH by Sal Sancihttp://code.google.com/p/propforth/http://forums.parallax.com/forums/default.aspx?f=25&m=457723
PropForth 2.7 has several changes: fixed the error in the "saveforth" word, updates to documentation, instructions to generate new propforth.spin code. Additional updates to the documentation will be posted in the next week or so, currently enough is present to get up and running. Questions and comments are welcome. Please point out anything that needs clarification. Notice: PropForth is separate from propellerforth, which unfortunately has not been updated since 2008 and does not have any source available. PropForth has the spin source posted and can be modified in the source in addition to or in combination with modifying the forth dictionary. prof_braino notes that PropFORTH' author is Sal Sanci, same guy that made SPIN FORTH. PropForth is actually version 2 of Sal's SPIN FORTH. Instead of running out of the ROM based spin, it is completely run out of ram, the dictionary, tasker, and primatives are written in assembler. (prof_braino only does code reviews and posting of notifications). Also, current version is 3.2, and uses descriptive names (like 'interpreter' instead of '_t1') which should make it more usable. http://forums.parallax.com/forums/default.aspx?f=25&m=468264 The new version of PropForth is available on Google code http://code.google.com/p/propforth/ The PropForth version 3.2 file set is a single archive download. This version uses descriptive names and a (hopefully) clearer naming convention. The README.txt file included in the archive includes a list of the name changes to help bring forward any existing code.

PROPELLERFORTH by CLIFFE BIFFLEhttp://propeller.wikispaces.com/Programming+in+Forthhttp://www.cliff.biffle.org/software/propeller/forth/index.phpCliffe Biffle has created an open source complete Forth development system for the Propeller, called PropellerForth. If you are not familiar with what Forth is about, its basically a programming language and development environment that runs entirely on the Propeller. You do not need a PC to program your Propeller board (Prop Demo, Hydra supported) anymore. Once you use the Propeller Tool to upload the single binary image all your other development tasks are performed on the Propeller directly. Simply plug in a keyboard, hook up a TV, and off you go! I was a little confused a while back about what Forth is really about, so the best analogy I can give would be: It's like an open programmable dynamic "operating system" that can be modified on the fly, in real-time, while the system is running. Your best bet is to go download this rather amazing peice of work, and install it on your Propeller system. More information and links to file downloads available on the PropellerForth homepage.

JDFORTH FORTH to SPIN Compiler by Carl Jacobshttp://www.jacobsdesign.com.au/software/jdforth/jdforth.phphttp://www.jacobsdesign.com.au/software/jdforth/buynow.phpNot open source. Demo or pay. JDForth - the first compiler(?) that takes an input source file and generates a Spin object!  Input Files: Forth source files + PASM kernel.  Output File: A Spin object that requires only a single cog.  Easy interface allows Spin access to Forth words.  The resultant object may be instantiated multiple times for multiple Forth systems.  Unused forth and kernel words are optimised out for a minimal memory footprint.  Editor has syntax highlighting for forth (*.jd4) as well as kernel (*.pasm) files...

SPIN FORTH by SAL SANCIhttp://code.google.com/p/propforth/http://code.google.com/p/spinforth/
Under General Public LicenseA forth for the propeller chip, written in spin and assembler, includes an assembler. 2008-Jan-24 Version 1.1 - fixed one outstanding bug "if else else then" bug, and changed console handling so you can write an IO device on a cog and use it as the console. One minor change to avariable to support smoother assembler operation which will be documented in the next 60 - 90 days. 2007-Dec-19 Here it is, rev 1.0 and for lack of any plan, It is under GPL. If anyone wants something else, let's talk offline. All this has only been tested with the propeller protoboard, and teraterm pro v4.51 http://sourceforge.jp/projects/ttssh2/ as a terminal program. I run teraterm at 115.2 kb with 8 bits, no parity, 1 stop bit, no flow control, 1ms delay per line. Tested with prop clip, and RS232 port on Toshiba laptop.

THUMB by HIPPYhttp://forums.parallax.com/forums/default.aspx?f=25&m=235152http://forums.parallaxinc.com/forums/attach.aspx?a=19014Proof of Concept Thumb VM implementation attached. Not comprehensively tested but it runs the embedded Thumb VM Program which proves the most common functionality, including branch and subroutine call and return. It increments a value in a fixed location in hub memory, Tv_Text displays it. Currently uses an in-Cog subroutine call stack but external stack is easy enough to add and it shouldn't have too much impact on speed. A casual stopwatch test suggests it's delivering just under 1MIPS at 80MHz. That gives PASM around a 20:1 speed advantage. For "mov a,b" and similar PASM has around a 12:1 advantage. Thumb VM is approximately three times slower than LMM, but there's no reason Thumb VM cannot support native 32-bit instructions LMM-style...META2 COMPILER by MIKE GREENhttp://forums.parallax.com/forums/default.aspx?f=25&m=233272For those of you with experience in compiler writing ... Here's a little work-in-progress. This is a compiler-compiler that runs on a Propeller (5MHz xtal, 128K EEPROM, attached SD card, programming port as console). It reads a source program from a file on the SD card and compiles it into Spin in another file on the SD card. The language involved is a simple compiler writing language called Meta2 that dates back to the 1960's and has been used to bootstrap several compilers including a Pascal compiler. It needs a little work before I consider it suitable for compiling anything other than itself, particularly the addition of a simple symbol dictionary, but I thought it might be interesting for others to see it now that it can compile itself. The support library (object) may also be generally useful since it has routines to scan Spin and C type comments, convert Spin constant formats to binary, and recognize identifiers and string constants. The actual input and output files are 32K areas in the EEPROM. The EEPROM writing is buffered to minimize the amount of writing. There's a very very simple descriptive document included.

SPHINX SPIN COMPILER by MIKE GREENhttp://forums.parallax.com/forums/default.aspx?f=25&m=363645http://www.sphinxcompiler.com/ web site by mparkSphinx is a Spin compilerwritten in Spinthat runs on the Parallax Propeller. Although memory constraints prevent Sphinx from compiling the full gamut of Spin programs (see Limitations at url), it is not a toy compiler. It can compile many complex and substantial programs, including those containing Propeller assembly language, such as the Parallax tv and graphics objects. Sphinx can also compile itself. Hardware requirements: Sphinx requires a Propeller system with the following peripherals: * SD card interface (fsrw-compatible) and SD card. * NTSC video interface and NTSC display device. * PS/2 keyboard interface and PS/2 keyboard.

MOCOG V0.60 (6809 VARIANT) by HEATER. Introducing MoCog an emulation of the Motorola 6809 microprocessor for the Propeller. In the few slack moments I have nowadays I have been converting the ZiCog Z80 emulator into a 6809 emulator. As usual with me this is a very unfinished early release. There is a lot of code in place but very little is tested. So far it just about single steps its way through a short loop of
NOP
ADDA $01
JMP $0000
No flag setting is in place. This should compile with BST or homespun for the Prop Demo Board if the following defines are set: "PropDemoBoard" and "SingleStep". Just compile, download and watch the output in the terminal window of BST or ProTerminal or whatever. Hit any key to take single steps through the loop.http://forums.parallax.com/forums/default.aspx?f=25&m=355169

OUROBOROS by MICHAEL GREEN - Basic Compilerhttp://forums.parallax.com/forums/default.aspx?f=25&m=349616&p=2Ouroboros and ouroboros1 are left-overs from a project to make a Basic to LMM compiler for the Propeller. I forgot to delete them from the archive for the Winbond/SRAM driver. They're not in the Object Exchange version of the driver.http://forums.parallaxinc.com/forums/default.aspx?f=25&m=255771
Here's my long ignored working directory, comes with no guarantees, no documentation or explanation other than that Ouroboros.spin is an attempt to create an editor front end, never quite worked. I think there was a problem with the SD card I/O routines. ExOuroboros.spin is the beginning of a compiler. It can process declarations and allocate storage and some of the code generation for expressions and simple flow of control seemed to work (just started being tested). Ouroboros.zipOUROBOROS1 by MICHAEL GREEN - Basic Compiler. Ouroboros and Ouroboros1 are left-overs from a project to make a Basic to LMM compiler for the Propeller. I forgot to delete them from the archive for the Winbond/SRAM driver. They're not in the Object Exchange version of the driver.http://forums.parallax.com/forums/default.aspx?f=25&m=349616&p=2

Urban Müller's Brainf*** BF IMPLEMENTATION BY JAZZED "BF is a programmer's toy; it is an incredibly obscure "write only language" (this means "once you write it, you may as well forget about reading and understanding it after just a few hours" [noparse]:)[/noparse] The BF interpreter is implemented in less than 120 PASM instructions. Various trivial demo program strings such as "Hello World!" are included. The "99 Bottles" demo is default. The PASM interpreter has an interface to serial input/output provided by the demo code; the interface should be easily changed to a keyboard/TV with a little work. The _XINFREQ is set to 6MHz (PLL16), so watch out." (Steve) "I'm not so sure that BF, or something similar, is totally bereft of practicality. It may well be an appropriate language for adaptive programming via a genetic algorithm. It has a small alphabet and is much more DNA-like than typical procedural languages. Moreover, once a program is optimized, there is no reason it couldn't be translated back into something that runs more quickly." -Phil
[noparse][[/noparse]url=http://forums.parallax.com/forums/default.aspx?f=25&m=397229]http://forums.parallax.com/forums/default.aspx?f=25&m=397229

12BLOCKS (formerly SPINNER) by HANNO Easily create programs by dragging blocks together. The library of ~100 blocks makes it easy to build games, robots and more. All the complexity of cogs, objects, memory and variables is handled for you- leaving you free to focus on your code. Comes with ~10 sample programs, a 20 page tutorial, a 30 page manual, videos, and a wiki illustrating what others have accomplished. Perfect complement for the "Parallax Demo Board" for beginners - but powerful and extensible enough for anyone.http://forums.parallax.com/forums/default.aspx?f=25&m=363981

Atari 2600 with a 6507 processor emulator by Michael Kohnhttp://www.mikekohn.net/micro/propeller_atari_emulator.php
and Parallax Forum has an ongoing development thread here for related informationhttp://forums.parallax.com/forums/default.aspx?f=33&p=1&m=310828"I was looking for an idea for a cool Parallax Propeller project to work on and I figured I'd try out an Atari 2600 emulator. This chip seems like a good microcontroller to do this on since it has 8 cores running at 80MHz, plus a library for outputting to a TV or VGA monitor. I already had C and Java code (links at web site) I wrote for emulating a 6510 CPU (close enough to the 6507) so I wrote a c2spin program to convert the C code to the built in Spin language of the Propeller.

Some of these may require use of the CP/M operating system many do not. For example I have been flashing patterns on LEDs of a Prop Demo board from a program written in C for the Z80 (BDS C) with no CP/M required, just the compiled binary with some support I/O routines in Spin.

With CP/M and enough external RAM (e.g. TriBladeProp or Hydra) all of these can be compiled on the Prop itself!!

Believe it or not, RPG4 is still going strong. I sometimes program in that for my business contracts with IBM.
You really can't break it.

Heater, you may have given me a reason to relearn CPM. I did a lot of CPM programming in the early 80's for business systems.
Now, you have given me a reason to bring back memories of a simpler, less stressful life

You can add Z80 assembly to the list too. Sort of obvious I know. I've just been writing a big project in Z80 assembly. It is soon going to go >20k and it is nice knowing there is still plenty of memory left for big string arrays. I've been writing string and math functions in assembly. Strings especially are not all that complex in assembly. mid, left, right, instr etc. And very fast - much faster than in C or Basic. The nice thing about CP/M is there are 36 function calls you can call with a call to 0005. Useful things like print a string, or get a character from the keyboard, or get a whole line of text from the keyboard, open a file, close a file, read in 128 bytes, write 128 bytes etc. With these functions, file access becomes easy in assembly, and also is extremely fast. Heater, if you are writing C without using CP/M, you can look at borrowing bits of the bdos/fdos/bios code to run those functions in your C code.

I know this might be going off on a tangent, but it could be useful for those writing languages like Basic for the Propeller. If you have string example code in 8080 or Z80 assembly, it could be translated to PASM and incorporated into these new languages. I guess this is from the perspective of someone who understands 8080/Z80/Basic/C but doesn't understand PASM or Spin. Or I could go and learn PASM and Spin... *grin*

It would be fantastic to expand languages like femtobasic so most/all basic commands are included.

I was just taking a "power nap" and when I woke up had this crazy idea in my head. Why not make use of some of those illegal 8080/Z80 opcodes to enable putting raw PASM instructions inline with the Z80 code ?

That is, whilst the emulator is executing Z80 ops from external memory certain undefined ops would cause it to execute PASM instructions LMM/XMM style. especially things like rdlong/wrlong to get easy communication to other spin that is running. Or easy access to ina/outa and the rest.

Would "Boom" qualify? It is a very simple language with only 2 instructions. The first instruction sends out 56 bits of data to a shift register that selects one or more relays to close, and the second instruction tells it when to close them

With XMM, program size is no longer an issue. There is already one compiler (Catalina) that can build XMM programs for the Prop, and one hardware platforms (i.e. the Hydra) to run them on - 96Kb is supported "out of the box", and I hope to support 288Kb on this platform shortly.

As soon as Cluso99 gets around to delivering me a TriBladeProp, Catalina will support that, allowing Prop programs up to 1 or 2Mb. I believe ImageCraft is not far behind in this area as well.

Ross.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina

Forgive me. I was speaking of non-XMM applications. The Hydra solution is very limited to RAM expansion below 64-96 kilobytes. Above that, the card's RAM is severely limited to speeds allowing for only block transfers and not Random access.

I dismissed that solution over a year ago because of this limitation.

I must have missed the XMM code that provides a working solution that one can currently can implement NOW. I apologize.

JMH: We had a lot of laughs in our chemistry labs but I don't remember sitting on Bunsen burners was one of them. Brings tears to my eyes to think about it. Most of the "fun" we had then would be considered far too dangerous now a days.

Try XLISP. It's not pure LISP like Chaitin's, but is more suitable for applications. If anyone wants to start LISPing seriously, they should download PLT Scheme. There are some Scheme implementations that could be ported to Catalina.