build.bat запускает:
spf4.exe src/gspf.f S" img.asm" TSAVE CR BYE
Это генератор img.asm
img.asm содержит ассемблерный код полученный в результате компиляци
исходных текстов на форте в каталоге src\ .
Форт на форте представляет собой набор форт-определений доступных для вызова в рантайме
форт-системы полученной в результате компиляции.
Т.е. в файл, на пример, KolSPForth.4\src\spf_last.f добавляем строку
: HI ." HILLO!" :
компилилуем систему.
запускаем
набираем spf <вк> для запуска моего форта.
там HI . <вк> - возврат каретки.
Я допустил ошибку
в файле KolSPForth.4\src\compiler\spf_translate.f
Фрагмент
: INCLUDED_ ( i*x c-addr u -- j*x ) \ 94 FILE
BLK @ 0=
Надо заменить на
: INCLUDED_ ( i*x c-addr u -- j*x ) \ 94 FILE
MEBLK @ 0=
К стати, полезно это определение сопоставить с
INCLUDED (c-addr, u -- )
в KolSPForth.4\meforth.asm
ЗЫ: Я хотел для инклюде аллокировать память под исполняемый файл
но системная функция 68 эмулятором не поддерживается.
Я задумал сам определить функцию аллокирования.
Оказалось что нет доступа к памяти эмулятора из приложения.
Forth
Я непонял каким образом можно отккрывать фортовские файлы.
Лучшебы конечно делать это припомощи макросов из библиотеки ASCL - opendialog,savedialog.Может реализуете - это ведь недолго.
Лучшебы конечно делать это припомощи макросов из библиотеки ASCL - opendialog,savedialog.Может реализуете - это ведь недолго.
Открывать в смысле редактировать?
Можно редактировать с помощью другого приложения(на пример с помощью tinypad).
Вообще, среду разработки лучше представить в виде внешнего модуля.
В основном, форт-система должна содержать минимум для неограниченного расширения.
Вопрос: в Kolibri есть средства общения между приложениями?
Можно редактировать с помощью другого приложения(на пример с помощью tinypad).
Вообще, среду разработки лучше представить в виде внешнего модуля.
В основном, форт-система должна содержать минимум для неограниченного расширения.
Вопрос: в Kolibri есть средства общения между приложениями?
http://fpauk.narod.ru/kolspforth.5.rar почти тоже что http://forth.spb.su:8888/KolSPForth.4.rar
в режиме spf, Esc - обратное действие забою.
В смысле, печать забитого символа (и восстановление предыдущей строки).
в режиме spf, Esc - обратное действие забою.
В смысле, печать забитого символа (и восстановление предыдущей строки).
Функция 68? При чем тут она? Динамическое распределение памяти - функция 64 (и ее все три эмулятора поддерживают)
Ушёл к умным, знающим и культурным людям.
68ая функция предназначена для выделения физической памяти. Это нужно для драйверов пользовательского режима, например, для AC97 плеера.
Поэтому для целей, указанных выше, в форте должна использоваться именно 64-я функция...
Ушёл к умным, знающим и культурным людям.
Изменение размера памяти приложения, не заменяет выделения памяти.
В очередной версии http://fpauk.narod.ru/kolspforth.7.rar
Для для загрузки файлов с помощью INCUDED расположил буфер 64K
в конец приложения. Если памяти не хватает, увеличиваю размер всего
приложения с помощью 64-ой функции. Но мне может понадобится дополнительная
память для других задач.
Для примитивов теперь использую ассемблер из SMAL32. Он больше
похож на FASM.
В очередной версии http://fpauk.narod.ru/kolspforth.7.rar
Для для загрузки файлов с помощью INCUDED расположил буфер 64K
в конец приложения. Если памяти не хватает, увеличиваю размер всего
приложения с помощью 64-ой функции. Но мне может понадобится дополнительная
память для других задач.
Для примитивов теперь использую ассемблер из SMAL32. Он больше
похож на FASM.
Новая версия http://fpauk.narod.ru/kolspforth.9.rar
Приведена в соответствие к Форту в виде драйвера http://fpauk.narod.ru/k_svn.566_src_f.rar
Для работы с файлами использовал 70-ю функцию (без нее было криво). Формат словаря тоже
сделал в соответствии с http://meos.sysbin.com/viewtopic.php?p=12736#12736
Образ дискеты: http://fpauk.narod.ru/k_svn.566_f.rar
Приведена в соответствие к Форту в виде драйвера http://fpauk.narod.ru/k_svn.566_src_f.rar
Для работы с файлами использовал 70-ю функцию (без нее было криво). Формат словаря тоже
сделал в соответствии с http://meos.sysbin.com/viewtopic.php?p=12736#12736
Образ дискеты: http://fpauk.narod.ru/k_svn.566_f.rar
Может ли forth создавать полнофункциональные приложения или работает исключительно в режиме текстовых скриптов?
Куда компилируются скрипты, в текущий процесс mefort или в памать драйвера?
Как запускать скрипты?
Скачал дискету - нифига не вьехал.
Примера для запуска не нашел. Запустил 'Mefort' выскреб из KolSPForth.7 примеры meforth_samples, закинул на RD (кстати что это за убогие версии Kfar и KFM при новом ядре:P), как запускать не понял , начал эксперименты: пишу exampl.f - выдает ошибку -2003, пишу S" /rd/1/example.f" INCLUDED - отвечает INCLUDEDERR=5 , лезу внутрь - в модуле menuet.f включается какой то файл '1st.4th' где взять непонятно.
Нужна хотябы минимальная инфа по основным командам.
И желательно бы сделать запуск fort-приложений по клику в kfar и kfm.
Можно скомпилированный скрипт представить в ассемблерном виде. Так как я это сделал для созданияAlver wrote: Может ли forth создавать полнофункциональные приложения или работает исключительно в режиме текстовых скриптов?
форт-систем для Колибри. Программа типа дизассемблера создает модуль img.asm, который подключается
к базовой ассемблерной программе-оболочке.
Куда компилируются скрипты, в текущий процесс mefort или в памать драйвера?
Как и раньше, в конец программы отмеченной значением литерала CTOP . Смотри конец файла meforth.ASM .
У каждой форт-приложения должен быть свой кодофайл. Однако, я бы хотел, чтобы тело форт-драйвера
могло быть доступно из каждого приложения для чтения и передачи управления.
В драйвере под кодофайл отведен массив : в drivers\forth\amain.asm
CTOP DB 0x10000 DUP (?)
Думаю сделать полный доступ к форт-драйверу во время работы системы. Чтобы можно было интерактивно капаться
в ядре во время его работы (для суперпользователей).
В командной строке набираешь его имя. Вообще, изначально, Форт это просто тупой исполнитель последовательностиКак запускать скрипты?
слов-команд разделенных пробелами.
Это примеры от willow для его Форта в KolSPForth.7 были 2-а Форта в одном модуле. В http://fpauk.narod.ru/kolspforth.9.rar
Скачал дискету - нифига не вьехал.
Примера для запуска не нашел. Запустил 'Mefort' выскреб из KolSPForth.7 примеры meforth_samples, закинул на RD
от willow форта осталось только запуск и пользовательский интерфейс. У меня пока, до примеров руки не дошли.
Вообще, вызов системных функций производится командами SYS1 ... SYS6 фаил src\KOL\spf_kol_sys.f
В остальном должна быть совместимость с СПФ4 http://spf.sourceforge.net/
Примерами могут служить также, исходные тексты самой системы. Форт на форте представляет собой набор тех-же
определений, которые можно заново переопределить в рантайме системы.
Однако, для переопределения примитивов потребуется предворительно загрузить форт-ассемблер.
Чтобы не набирать в командной строке, можно эту строку добавить в /sys/INIT.Fпишу S" /rd/1/example.f" INCLUDED
Комматда AUTOEXEC запускает этот файл при запуске форт-системы.
Я упустил один момент. Количество одновременно открытых файлов у меня
всего 2 и вложенность INCLUDED соответственно такая-же.
Нужно увеличить константу MAX_OPEN_FILES (файл src\KOL\spf_kol_io.f ) и пересобрать систему.
Думаю добавить к системному меню. Иконку тоже не помешало-бы.И желательно бы сделать запуск fort-приложений по клику в kfar и kfm.
Last edited by Mihail on Sat Aug 18, 2007 5:20 pm, edited 1 time in total.
http://fpauk.narod.ru/kolspforth11.rar - образ загрузочного диска с примерами для Форта
С новыми версиями
http://fpauk.narod.ru/kolspforth11.rar - форт как приложение
http://fpauk.narod.ru/k_svn.605_src_f.rar - форт в виде драйвера
С новыми версиями
http://fpauk.narod.ru/kolspforth11.rar - форт как приложение
http://fpauk.narod.ru/k_svn.605_src_f.rar - форт в виде драйвера
первую ссылку я так понимаю не ту дал
http://fpauk.narod.ru/kolforimg.rar
http://fpauk.narod.ru/kolforimg.rar
Интересно, Форт прижился в Колибри? Продолжение есть?
Соединяй, и здравствуй.
Как видите, не прижился. Хотя результаты какие-то вроде были.
Если вы программируете на Forth - у вас есть все шансы портировать его для Колибри. Пример: мне нужен был LUA - я портировал LUA.
Если вы программируете на Forth - у вас есть все шансы портировать его для Колибри. Пример: мне нужен был LUA - я портировал LUA.
Who is online
Users browsing this forum: No registered users and 5 guests