

Bootstrapping Forth - martincho

I am getting ready to author a series of tutorials on bootstrapping Forth starting with a &quot;blank&quot; microprocessor.<p>I am doing this as a microprocessor and programming fundamentals mini-course for my son&#x27;s FRC [0] (FIRST Robotics Competition) club.<p>The intent is to teach basic digital logic and programming at the lowest possible level as a solid foundation for development at higher levels.  Almost any modern language becomes easier to understand once armed with an understanding of low level concepts.<p>I am looking for input on how to approach it.  I&#x27;ve done seminars for working engineers in the past.  In this case I have to assume no prior knowledge of any of the material to be presented.  At a basic level three approaches come to mind:<p><pre><code>    - Text based.  You have to read it.  Slides.
    - Video lectures.  I present on video while showing relevant slides.
    - Interactive.  Like video lectures.  Uses a real-time recording of
      terminal window much more so than pure text slides.

</code></pre>
Of course, I&#x27;ll design and build a little microprocessor board the students will use during the course.  Not decided on architecture&#x2F;processor yet.  On simple 8 bit embedded projects I&#x27;ve tended to use various 8051 derivatives.  This is one option.  I&#x27;ve also used parts from Microchip, TI, Freescale, Cypress and others.<p>Thanks!<p>[0] http:&#x2F;&#x2F;www.usfirst.org&#x2F;roboticsprograms&#x2F;frc
======
nostromoa
[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&c...](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCsQFjAA&url=http%3A%2F%2Fwww.iecc.com%2Flinker%2F&ei=ehCkUo2zJOrlsATFgoD4DA&usg=AFQjCNFbET0lSowIUuJTqBCIucL3I4tA8A&sig2=SWAWJUJqvZpRnYzNFlBY5w&bvm=bv.57752919,d.cWc)
or stack in HP 12c calculator

~~~
martincho
Interesting book. Not sure how it might apply to what I am trying to do
though. While I haven't used Forth for quite some time I did use it
extensively for a number of years. This included bootstrapping in a couple of
small processors. The process is surprisingly simple. From memory, a
significant portion of the work was having to write drivers for the various
I/O devices needing support.

I have a number of ideas for the minimum I/O set to support initially. Of
course, this could easily be enhanced through expansion ports.

I am trying hard to limit the scope of the project. It's far too easy to
complicate the heck out of it.

------
gw666
I'd favor video lectures. What you're proposing is pretty ambitious for teen
learners, so (posted) videos will allow them to rewatch them, pause to take
notes, etc. Good luck!

~~~
martincho
I tend to favor video as well. My kid is almost through with MIT 6.00.1x Intro
to Computer Science with Python and he's done pretty well. I've helped him
along the way but was happy to see him need less help as he progressed through
the course.

Part of me thinks that starting at a much lower level might actually be easier
in some ways. Not sure at this point.

