monsonite Posted February 9, 2015 Report Share Posted February 9, 2015 Hi All, A couple of years ago, I stumbled across a minimalist, interpreted programming language, created by Ward Cunningham - wiki pioneer. He called it Txtzyme - a concatenation of text and enzyme, and suggested that it could boost creativity. What it is, is a tiny interpreted language, where a single ASCII character is interpreted as an instruction, and causes a block of associated C code to be executed. It is so compact, it can be condensed into about 90 lines of Arduino C code. However, what it provides, is a powerful means to command the hardware of a microcontroller, just using a few characters sent over a serial port. Essentially it is a low level language for exercising new hardware. I took Ward's simple interpreter and extended it, to create a programming tool, that I call SIMPL. It borrows heavily from some of the minimalist ideas, first used 40 years ago by Chuck Moore's FORTH and the various TinyBasics used in the mid-1970s for some of the early 8 bit systems. To cut to the chase, I now have SIMPL running on ZPUino, on a Papilio Duo with Logic Start Shield. I can turn LEDs on and off with a few snippets of interpreted code, run LED chasers or synthesize musical tones. I'm currently trying to compile about 2 years of experimentation into a concise document. In the meantime - if you want to play with SIMPL - the raw sketch is up her on this github gist. https://gist.github.com/monsonite/97730b0456762da20a98 I'd appreciate comments and feedback. Have fun Ken B London Link to comment Share on other sites More sharing options...
Jack Gassett Posted February 10, 2015 Report Share Posted February 10, 2015 I just took a look at the source code and your blog post. It looks very promising, there are all kinds of cool possibilities when coupled with an FPGA... Jack. Link to comment Share on other sites More sharing options...
monsonite Posted February 10, 2015 Author Report Share Posted February 10, 2015 Jack Thanks for taking a look. This tiny interpreted language is a great way of breathing the first life signs into new hardware. I was amazed how quickly I hacked it to run on the ZPUino. In this simple form, It can toggle an output pin at 161kHz - just using the digitalWrite function. Does the ZPUino recognise standard AVR register naming for direct I/O port manipulation - that way it would get an order of magnitude higher speed over digitalWrite see http://www.arduino.cc/en/Reference/PortManipulation regards Ken Link to comment Share on other sites More sharing options...
monsonite Posted February 10, 2015 Author Report Share Posted February 10, 2015 OK - I just read up on the ZPUino, and answered my own question. ZPUino is a 32bit stack-based RISC core and does not attempt to emulate any AVR. A bit more reading and I'll learn how to write to the I/O registers at full speed. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.