You can download a file-in for PIC/Smalltalk here (zip
file). If you don't know how to get it into Smalltalk, you probably aren't ready to use
it... This is for Squeak version 2.8, which you can get here.
This is a new version, released August 6, 2000. It fixes some bugs in the generated
code, and also fixes some IDE problems, and gets rid of the pool dictionary problems from
the last release.
There's an example of interfacing to a servo included.
To open a browser, evaluate:
in a Morphic project. This gives you a regular class browser with a new sub-menu in the
class and message list views.
This thing is designed to work with PIC 16F84 chips. It may work for others, but I haven't
It includes a full-blown Smalltalk parser, since the version of Smalltalk I wrote it in
originally doesn't include one.
If you have problems, you can email me, or better yet report them to the Squeak list. If
it becomes a problem there, we can start a new egroups group or something for it.
I haven't extensively tested this in Squeak yet, so user beware. I did just port it a
couple months ago from Visual Smalltalk to Dolphin, so I worked out most of the porting
issues when I did that. I have successfully programmed a PIC chip with this version, so it
does for the most part work.
There are no real classes or instances in this system. instance variables are global, so
name them as such. The linker does a full closure on the methods called from the reset
method and the isr method, so you can include lots of other support code that you don't
use, and it doesn't end up costing space in the end assembler code.
I don't guarantee that the assembler produced from the included macros is 100% correct --
check the assembler output yourself carefully. If you don't know PIC assembler, you
shouldn't be programming PICs, or you should buy a commercial C compiler.
If you look at macro methods in PicObject, you'll see that they basically just define a
block. The code in those blocks is (of course) real Smalltalk code that is evaluated by
the code generator (and thus the Squeak Compiler) when the PIC/Smalltalk code gets
generated. You can take that as far as you need it in terms of optimization of code, or
doing weird stuff.
Anyway, comments are welcome.
If you really like it, feel free to send me nice stuff, or job offers :-)