Forth
http://fforum.winglion.ru/

amForth v3.4 Как забыть слово или все слова?
http://fforum.winglion.ru/viewtopic.php?f=39&t=2156
Страница 1 из 2

Автор:  iv_ru [ Вт июн 23, 2009 12:07 ]
Заголовок сообщения:  amForth v3.4 Как забыть слово или все слова?

Добрый день!

Я тут "игрался-игрался" с Фортом, да так что по команде words "два экрана текста" выходило, а потом мусор посыпался и система умерла....

Заново Forth залил и теперь он чистенький, опрятный...

Бывают такие ситуации когда слово было неправильно составлено и надо бы его поменять, а получается "повтор" этого слова и Система имеет 10 слов типа "prog1", а используется только первое...

Ворпосы:
1. Каким образом лучше реализовать FORGET_ALL ( забыть всё до системного словаря )
2. FORGET_FROM_WORD ( забыть всё начиная с этого слова )
3. FORGET_THIS_WORD ( забыть только это слово ) \ Возможно-ли?

Всем огромное спасибо заранее...
П.С. паралелльно читаю Броуди...

Автор:  Kopa [ Вт июн 23, 2009 12:23 ]
Заголовок сообщения: 

Без разбора реализации Форта, в конкретном случае, ( amForth для AVR? )
так просто не получится:) ( если нет требуемой функциональности )

P.S. А как Форт для ARM? ( hfarm )

Автор:  Гость [ Вт июн 23, 2009 12:27 ]
Заголовок сообщения: 

Цитата:
Система имеет 10 слов типа "prog1", а используется только первое...

Система не имеет 10 слов, а имеет только одно - последнее(так как доступа к первым 9-ти словам нет),
а слово WORDS можно доработать, чтобы не показывало лишние слова.

Автор:  iv_ru [ Вт июн 23, 2009 12:38 ]
Заголовок сообщения: 

Anonymous писал(а):
Цитата:
Система имеет 10 слов типа "prog1", а используется только первое...

Система не имеет 10 слов, а имеет только одно - последнее(так как доступа к первым 9-ти словам нет),
а слово WORDS можно доработать, чтобы не показывало лишние слова.


т.е мусора в системе не остаётся? Я это имел в виду.

Kopa писал(а):
P.S. А как Форт для ARM? ( hfarm )
Умер, так как поставщик не смог быстро предоатавить борд, так что теперь amForth для AT90CAN128 (борд: DVK90CAN1-1.1)

Автор:  iv_ru [ Вт июн 23, 2009 12:42 ]
Заголовок сообщения: 

Тут аля просмотра стека (очень мне помогает в "отладке") написал слово:
Код:
: s3 dup ."  TOS: " . cr over ." TOS-1 " . cr rot dup ." TOS-2 " . cr -rot ;

показывает содержание 3-х верхних ячеек на стеке...

Автор:  iv_ru [ Вт июн 23, 2009 13:00 ]
Заголовок сообщения: 

iv_ru писал(а):
Тут аля просмотра стека (очень мне помогает в "отладке") написал слово:
Код:
: s3 dup ."  TOS: " . cr over ." TOS-1 " . cr rot dup ." TOS-2 " . cr -rot ;

показывает содержание 3-х верхних ячеек на стеке...


правильнее писать так:
Код:
: s3 ( -- ) dup ."  TOS: " . cr over ." TOS-1 " . cr rot dup ." TOS-2 " . cr -rot ;

Автор:  Kopa [ Вт июн 23, 2009 13:05 ]
Заголовок сообщения: 

iv_ru писал(а):
Kopa писал(а):
P.S. А как Форт для ARM? ( hfarm )
Умер, так как поставщик не смог быстро предоатавить борд, так что теперь amForth для AT90CAN128 (борд: DVK90CAN1-1.1)


Может тогда стоит попробовать и другие возможные Форт системы для AVR
( например FF303 ссылки можно найти в разделе железа Фортов для контроллеров )

Автор:  iv_ru [ Вт июн 23, 2009 13:08 ]
Заголовок сообщения: 

Kopa писал(а):
iv_ru писал(а):
Kopa писал(а):
P.S. А как Форт для ARM? ( hfarm )
Умер, так как поставщик не смог быстро предоатавить борд, так что теперь amForth для AT90CAN128 (борд: DVK90CAN1-1.1)


Может тогда стоит попробовать и другие возможные Форт системы для AVR
( например FF303 ссылки можно найти в разделе железа Фортов для контроллеров )


Поздно т.к. адаптер-боард уже разработан и заказан. Так что только AT90CAN128...

Автор:  Kopa [ Вт июн 23, 2009 13:17 ]
Заголовок сообщения: 

iv_ru писал(а):
Тут аля просмотра стека (очень мне помогает в "отладке") написал слово:
Код:
: s3 dup ."  TOS: " . cr over ." TOS-1 " . cr rot dup ." TOS-2 " . cr -rot ;

показывает содержание 3-х верхних ячеек на стеке...


Можно и так:
Код:
: s3 >R >R  DUP .  R> DUP .  R> DUP . ;


P.S. FF303 можно настроить на любой тип AVR контроллера, а асм или Форт
недостающие реализации можно брать из других систем ( например и из amForth )

Автор:  iv_ru [ Вт июн 23, 2009 13:40 ]
Заголовок сообщения: 

Kopa писал(а):
iv_ru писал(а):
Тут аля просмотра стека (очень мне помогает в "отладке") написал слово:
Код:
: s3 dup ."  TOS: " . cr over ." TOS-1 " . cr rot dup ." TOS-2 " . cr -rot ;

показывает содержание 3-х верхних ячеек на стеке...


Можно и так:
Код:
: s3 >R >R  DUP .  R> DUP .  R> DUP . ;


P.S. FF303 можно настроить на любой тип AVR контроллера, а асм или Форт
недостающие реализации можно брать из других систем ( например и из amForth )


помимо всего прочего мне необходимо 2 поеледовательных порта и CAN... И, как уже сказано, я специально для этого борда разработал адаптер, так что теперь с ними и работать, т.к. время на дипломную отведено не бесконечно...

Автор:  Kopa [ Вт июн 23, 2009 13:56 ]
Заголовок сообщения: 

iv_ru писал(а):
Поздно т.к. адаптер-боард уже разработан и заказан. Так что только AT90CAN128...


Описание будет похоже например, на isopod VM~3.5Мб архив
разработки newmicros?

P.S. И что есть адаптер?
т.к. AVR контроллеры можно заливать по SPI через парралельный порт.:)

Автор:  iv_ru [ Вт июн 23, 2009 14:01 ]
Заголовок сообщения: 

Kopa писал(а):
iv_ru писал(а):
Поздно т.к. адаптер-боард уже разработан и заказан. Так что только AT90CAN128...


Описание будет похоже например, на isopod VM~3.5Мб архив
разработки newmicros?

P.S. И что есть адаптер?
т.к. AVR контроллеры можно заливать по SPI через парралельный порт.:)


Адаптер есть печатная плата со всякими безделушками типа реле, диоды, трансисторы... предусмотрены разъёмы на которые будет посажен DVK90CAN потом средствами форта буду содержимое тех или иных регистров передавать на адаптер...

Автор:  iv_ru [ Вт июн 23, 2009 14:14 ]
Заголовок сообщения: 

всё, опять весь словарь замусорил... :shuffle;

Автор:  mOleg [ Вт июн 23, 2009 14:35 ]
Заголовок сообщения: 

iv_ru писал(а):
т.е мусора в системе не остаётся? Я это имел в виду.

остается .
FORGET в современных системах не делают - отказались от него 8( но в общем зависит от системы
на смену ему в 94 стандарте есть слово MARKER (на мой взгляд очень неудобное) многие системы его поддерживают,
но смысл в обоих словах есть только на больших машинах, а на микроконтроллерах обычно стараются не переопределять слова.
вообще удаление слова из словаря возможно только, если его никто не использует, но даже в этом случае толку от
удаления слова из словаря будет мало(так как память распределяется по стековому принципу) - останется дырка в памяти, которую
использовать для чего-то полезного будет неудобно.

а для распечатки стека обычно в системе есть слово .S

Автор:  Гость [ Вт июн 23, 2009 14:56 ]
Заголовок сообщения: 

iv_ru писал(а):
всё, опять весь словарь замусорил... :shuffle;


И что код дописывается во Flash и нет возможности исполнения из ОЗУ?

P.S. В скриптовом движке слово DEFER или MARKER полезно ввести.

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/