Forth
http://fforum.winglion.ru/

Forth86 - вопросы
http://fforum.winglion.ru/viewtopic.php?f=39&t=2632
Страница 1 из 2

Автор:  LasyUser [ Вт авг 10, 2010 11:07 ]
Заголовок сообщения:  Forth86 - вопросы

Начал изучать Форт - чаще пишу под МК на ассемблере, иногда на С, поэтому остановился на Forth86 (автор William H. Payne). Вроде как на его основе написан кросс Форт для 8051. Поигрался со стеком - вроде привыкнуть можно. Захотелось попробовать что-нибудь посерьезнее (в рамках моих сегодняшних познаний Форта конечно.... :oops: ), поэтому решил разобраться как происходит работа с загрузкой/сохранением файлов, ведь не все-же набивать с клавиатуры .... и вот тут то облом........ :( . В литературе про это нашел не много ( причем как я понял у каждой реализации Форта свои слова для этого ...), а в English я не силен......
Как сохранить или загрузить файл в DOSe для меня не вопрос - проще всего через int 21h, а вот как тут быть просто не знаю (может есть все-же какие то стандарты ... похоже что для данного Форта - это Форт79). Открыл в Far *.scr-файл - судя по тому, что CR там не видно, текст имеет какое-то свое форматирование ... похоже сохраняется экранная копия. Не хотелось-бы перелезать на другой Форт - может кто работал с этим и подскажет формат слов (команд) ...

P.S. критика приветствуется, но просьба сильно не пинать.... :oops:

Автор:  diver [ Вт авг 10, 2010 11:27 ]
Заголовок сообщения:  Re: Forth86 - вопросы

Попробуйте для начала SwiftX или ByteForth - в них и документация есть, и мануалы прозрачные, и примеры

Автор:  Варнак [ Вт авг 10, 2010 12:12 ]
Заголовок сообщения:  Re: Forth86 - вопросы

LasyUser писал(а):
Открыл в Far *.scr-файл - судя по тому, что CR там не видно, текст имеет какое-то свое форматирование ... похоже сохраняется экранная копия. Не хотелось-бы перелезать на другой Форт - может кто работал с этим и подскажет формат слов (команд) ...

Судя по всему, там используется для хранения исходников механизм так называемых экранов (16 строк по 64 символа), которые загружаются словом LOAD ( n -> ) , где n номер экрана, а файл *.scr - последовательность таких экранов.
Для проверки этой гипотезы можно попробовать выполнять слово LIST ( n -> ): если оно отображает осмысленный форт-текст, значит так оно и есть. Ну и, если таких файлов несколько, то должно быть переключение межди ними.
В общем, смотреть слова: LIST, LOAD, BLOCK, --> ..., возможно, EDIT есть для этих "экранов"

Автор:  LasyUser [ Вт авг 10, 2010 13:24 ]
Заголовок сообщения:  Re: Forth86 - вопросы

2 Варнак

Цитата:
Судя по всему, там используется для хранения исходников механизм так называемых экранов (16 строк по 64 символа), которые загружаются словом LOAD ( n -> ) , где n номер экрана, а файл *.scr - последовательность таких экранов.


Варнак - спасибо за "наводку" ... судя по тому, что размер *.scr-файлов кратен 64 байтам, то похоже что так и есть.
... а есть где-нибудь примеры использования и формат LOAD, BLOCK

т.е. я так понял , что для загрузки внешнего файла на экран пишут что-то вроде LOAD xxx.scr 1 , где после LOAD идет имя файла и номер блока?
... а вот как образуется нумерация блоков - пока загадка.....

Автор:  Варнак [ Вт авг 10, 2010 13:45 ]
Заголовок сообщения:  Re: Forth86 - вопросы

LasyUser писал(а):
2 Варнак

Цитата:
Судя по всему, там используется для хранения исходников механизм так называемых экранов (16 строк по 64 символа), которые загружаются словом LOAD ( n -> ) , где n номер экрана, а файл *.scr - последовательность таких экранов.


Варнак - спасибо за "наводку" ... судя по тому, что размер *.scr-файлов кратен 64 байтам, то похоже что так и есть.
... а есть где-нибудь примеры использования и формат LOAD, BLOCK

т.е. я так понял , что для загрузки внешнего файла на экран пишут что-то вроде LOAD xxx.scr 1 , где после LOAD идет имя файла и номер блока?
... а вот как образуется нумерация блоков - пока загадка.....

как попадает текст в экран это отдельная песня (скорей всего есть где в этом форте редактор этих экранов, которым текст и создаётся), а для отправки этого текста на интерпретацию фортм пишут "1 LOAD" и т.п.

А размер файлов, скорей всего, кратен 1024.

Автор:  chess [ Вт авг 10, 2010 14:00 ]
Заголовок сообщения:  Re: Forth86 - вопросы

Где-то видел, что файлы к фортсистеме прицепляют словом USE
USE имя_файла (расширение не пишется)
словом EDIT входят в редактирование файла прицепленного по USE
Словом n LOAD интерпретируют блоки(экраны) файла, где n - номер блока.
В каждом блоке 16 строк по 64 символа - итого 1024 символа(байта)

Автор:  LasyUser [ Вт авг 10, 2010 14:29 ]
Заголовок сообщения:  Re: Forth86 - вопросы

всем спасибо за поддержку...

начал копать в след. направлении - раз система под DOS, то наверняка используются функции DOS для работы с файлами т.е. (3Dh ... 40h - открытие,закрытие,чтение,запись) и другие....
Выяснил что понимаются слова:
CREATEHANDLE
OPENHANDLE
LOAD
SAVE
READ
PFILE
AFILE
SYSFILE
.... с параметрами пока никак .... лезут ошибки

Автор:  mOleg [ Вт авг 10, 2010 14:49 ]
Заголовок сообщения:  Re: Forth86 - вопросы

выбор Форта не совсем понятен. Если вам надо 16 бит (а английский язык не проблема) лучше взять FPC, либо, если, русская система, то ищите INFOFORTH версии 4 и выше.
Если, опять же под ДОС, но 32 бита, то лучше SMAL32 нет ничего.
Если хочется кросскомпилятор чтоб был на много систем, то копайте в сторону EFORTH (опять же, имхо, лучший вариант, т.к. это пожалуй самый портируемый из Фортов).

Автор:  LasyUser [ Вт авг 10, 2010 15:20 ]
Заголовок сообщения:  Re: Forth86 - вопросы

.... выбор пал на FORTH86 по причине доступности исходников и открытости проекта - правда все на английском. Не так страшен английский, как "не перевариваемый" формат
*.scr-файлов (... ежели-бы запустить все это и посмотреть на работу, то потом можно и конвертер *.scr->*.txt состряпать ). Хоть WinFort и наверняка поудобнее, но не хочется разбираться с "удобствами" - цель разобраться с языком, поэтому Дос и выбран.

Интерес вызван именно кросс-возможностями (чаще ковыряюсь со всякими MK где и ассемблер за радость), а в каталоге с FORTH86 в исходниках есть написанный на его базе FORTH51 - для понимания основ самое то. На EFORTH натыкался, но не думаю, что он задокументирован лучше .... так что шило-на-мыло ИМХО ......

Автор:  mOleg [ Вт авг 10, 2010 15:38 ]
Заголовок сообщения:  Re: Forth86 - вопросы

LasyUser писал(а):
.... выбор пал на FORTH86 по причине доступности исходников и открытости проекта - правда все на английском. Не так страшен английский, как "не перевариваемый" формат *.scr-файлов (... ежели-бы запустить все это и посмотреть на работу, то потом можно и конвертер *.scr->*.txt состряпать ). Хоть WinFort и наверняка поудобнее, но не хочется разбираться с "удобствами" - цель разобраться с языком, поэтому Дос и выбран.

Вряд ли вы много выиграете, взяв старый Форт. Практически все перечисленные мною Форты (за исключением SMAL32 имеют открытый код).

LasyUser писал(а):
Интерес вызван именно кросс-возможностями (чаще ковыряюсь со всякими MK где и ассемблер за радость)

вот тогда и смотрите EFORTH
Цитата:
I wrote eForth so that it would be easier for me to develop Forth systems for many processors. Processors included 56000, 6502, 68332, 68HC11, 8051, 8080, 80C166, 80C196, 80x86, RTX2000, RTX2001, RTX2010, SC32, StrongARM, TMS320, Z80, and I may have forgotten some.

Он не отличается скоростью, зато предельно прост (на ассемблере определено от 27 до 34 примитивов в зависимости от целевой платформы или операционной системы). Я не видел другого Форта, который бы портировали на столько платформ.
Кстати, заметте, что он и сейчас развивается...

LasyUser писал(а):
На EFORTH натыкался, но не думаю, что он задокументирован лучше .... так что шило-на-мыло ИМХО ...

Ваш выбор. Я лишь могу порекомендовать лучший на мой взгляд вариант.

LasyUser писал(а):
Не так страшен английский, как "не перевариваемый" формат *.scr-файлов (... ежели-бы запустить все это и посмотреть на работу, то потом можно и конвертер *.scr->*.txt состряпать )

да там никаких проблем нет. один экран текста = 16 строк по 64 символа, так что конвертилка пишется на раз на любом подручном средстве (отсчитал 64 символа от начала, вставил перевод строки, и так до конца файла).

Автор:  mOleg [ Вт авг 10, 2010 15:44 ]
Заголовок сообщения:  Re: Forth86 - вопросы

кстати, не забудте посмотреть в раздел статьи
в частности обратите внимание на:
Портирование Форта. ч1. адресная интерпретация, регистры
Портирование Форта. Ч2. Загадочный DOES>
Портирование форта. Изучение вариантов построения Форт-ядра.

Автор:  chess [ Вт авг 10, 2010 15:51 ]
Заголовок сообщения:  Re: Forth86 - вопросы

LasyUser писал(а):
Интерес вызван именно кросс-возможностями (чаще ковыряюсь со всякими MK где и ассемблер за радость), а в каталоге с FORTH86 в исходниках есть написанный на его базе FORTH51 - для понимания основ самое то. На EFORTH натыкался, но не думаю, что он задокументирован лучше .... так что шило-на-мыло ИМХО ......

Посмотрите мой кросскомпилятор для МК51 на базе spf4 http://www.chess2007.nm.ru/~chess.zip
Исходники тоже есть ... и на русском, ассемблер внутри форта поддерживается, писать файлы в любом редакторе, создает бинарники, которые поддерживаются стандартными эмуляторами и симуляторами. Создает файл для прошивки без форт-системы - только рабочая программа - посему компактно очень. Да еще и документация по компилятору есть.

Автор:  LasyUser [ Вт авг 10, 2010 15:54 ]
Заголовок сообщения:  Re: Forth86 - вопросы

... буду разбираться - в случае положительных результатов, готов выложить плоды своих "мучений" ... :)

Автор:  mOleg [ Вт авг 10, 2010 19:35 ]
Заголовок сообщения:  Re: Forth86 - вопросы

кстати, на forth.org не так давно обновление было в http://forth.org/eforth.html

Автор:  LasyUser [ Чт авг 19, 2010 13:07 ]
Заголовок сообщения:  Re: Forth86 - вопросы

... попытки сделать на Форте что-то большее, чем 6 3 - 7 * - не увенчались успехом. Почитал Броуди и Келли - как там все доступно и просто ... берем и LOAD загружаем файл или блок, ну а если сохранить конечно SAVE ... только вот заставить нормально работать эти команды так и не вышло .... есть хоть какие-нибудь доки, которые описывают работу с Фортом ( загрузка сохранение файлов ) на конкретном примере ???????????

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