4E4th + TI LaunchPad. В начале было Слово.

После нескольких экспериментов и вводных слов (раз, два) пора переходить к рассмотрению внутренних механизмов нашей учебной форт-системы 4e4th. Иначе, как мне кажется, народу скоро наскучит зажигать светодиоды из терминала и забавляться вывернутой наизнанку логикой стековой машины.

Непосредственным стимулом к написанию данного текста стало то обстоятельство, что, просматривая в очередной раз исходники нашей исследуемой форт-системы, наткнулся на несколько новых слов, которых раньше не замечал.

В связи с этим подумалось, что те люди, которым интересна данная оригинальная технология программирования родом из 70-х, могли бы сами потихоньку копать в интересующем направлении, но для этого нужно уяснить несколько базовых принципов и основ построения forth.

Это именно то, чего лично мне не хватило несколько лет назад, чтобы вплотную заняться заинтересовавшей меня темой фортостроения, ну и отсутствие на тот момент готового рабочего образа системы под конкретное имеющееся железо.

Таким образом, сегодня рассмотрим строение основополагающего компонента любой forth-системы — слова.



Читать дальше

4E4th + TI LaunchPad. Основы языка Forth

В прошлый раз я представил общественности учебное компактное ядро forth, целиком размещаемое в 8 из 16 кБ флеш памяти MSP430G2553 и полноценно функционирующее, несмотря на смешные по нынешним временам 512 байт ОЗУ, в которых разместился буфер вводимых через UART команд, два стека (данных и возвратов) и пользовательский словарь, в который складываются вновь скомпилированные слова.

Дополнительные возможности (по сравнению с прототипом — CamelForth) дает слово save, которое сохраняет новые слова, введенные пользователем, в флеш память, освобождая ОЗУ.
(На самом деле это слово делает что-то другое, пока точно не разобрался. А слова изначально сохраняются в пользовательскую половину флеш памяти.)

Так как был высказан интерес к теме, продолжим изучение основ фортостроения вообще и особенности конкретной реализации 4E4th.


Читать дальше

Виртуальная машина и скриптовой движок в MSP430G2553 - проще пареной репы. 4e4th + TI Launchpad

Вот и дождался я своего launchpad'a!
Жажда халявы и широкий пеар в узких кругах сделали свое черное дело :)
Ну да ладно, пора к делу.

Итак,

постановка задачи

Дано:
непонятная красненькая плата со штырьками PLS-ок, USB шнурок и… собственно, всё.
Никаких ардуин на компе, никаких иаров, композеров, и даже MspGCC вне досягаемости.

Требуется написать и разместить в памяти контроллера программу, выполняющую какие-либо полезные действия.
С помощью циркуля и линейки, то есть консоли и терминала.
Страшно?!

Возможно, олдфаги мне скажут — «фигня вопрос, мы-то в советские времена ещё и не такое делали». Пожалуй, соглашусь. Было время, рисовал в клетчатой тетради листинги в машинных кодах (!) Z80, а потом забивал в память с помощью простейшего «загрузчика» INPUT-POKE addr-GOTO 10 (ностальжи :)

Однако, отвлекся. Это ещё не все. Определим, что же будет делать наша программа.
Пусть будет джентльменский набор новичка. То есть:

  1. Измерение напряжений на аналоговых входах. Измерение внутренней температуры.
  2. Управление внешними устройствами
  3. Опрос дискретных входов (кнопка S2)
  4. Вывод на индикатор
  5. Форматный вывод в UART
  6. Командный интерфейс через UART

Но и это ещё не всё.

7. Предоставим пользователю возможность переопределять функции по своему усмотрению через тот же терминал, подключенный к UART-у.

Вот теперь всё.


Читать дальше